Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Keras

Keras — это высокоуровневый API Python для создания и обучения нейронных сетей. Начиная с Keras 3 один и тот же код работает на JAX, TensorFlow и PyTorch.

Keras — это API Python с открытым исходным кодом и высоким уровнем абстракции для создания и обучения нейронных сетей. Франсуа Шолле выпустил его в марте 2015 года, чтобы упростить написание экспериментов с глубоким обучением: модель представляет собой стек или граф слоёв, compile задаёт оптимизатор, функцию потерь и метрики, а fit запускает цикл обучения. Keras стал официальным API высокого уровня для TensorFlow, а Keras 3, выпущенный в ноябре 2023 года, позволяет запускать один и тот же код модели на JAX, TensorFlow или PyTorch; используемый фреймворк выбирается при импорте Keras. Краткий и понятный код сделал Keras популярным выбором для обучения, прототипирования и соревнований Kaggle, а также для производственных моделей классификации изображений и обработки естественного языка.

Как работает Keras#

Модель Keras состоит из слоёв, например Dense, Conv2D, LSTM и MultiHeadAttention, каждый из которых хранит собственные веса. Keras предлагает три способа их объединения: API Sequential для простой последовательности, функциональный API для графов с ветвлениями, общими слоями или несколькими входами и создание подкласса keras.Model для полного контроля над прямым проходом. Скомпилированная модель обучается с помощью fit, который обрабатывает формирование батчей, обратное распространение ошибки, метрики, валидационные данные и колбэки для сохранения контрольных точек или ранней остановки. Затем модель оценивает новые данные с помощью evaluate и predict. Этот код обучает небольшой классификатор цифр на входящем в Keras датасете MNIST:

import os

os.environ["KERAS_BACKEND"] = "torch"  # or "jax" or "tensorflow", set before importing Keras

import keras

# MNIST handwritten digits, with pixels scaled to [0, 1]
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# Define the model as a stack of layers
model = keras.Sequential(
    [
        keras.Input(shape=(28, 28)),
        keras.layers.Flatten(),
        keras.layers.Dense(128, activation="relu"),
        keras.layers.Dense(10, activation="softmax"),
    ]
)

# Configure training, then train and evaluate
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])
model.fit(x_train, y_train, epochs=2, batch_size=64, verbose=0)
loss, accuracy = model.evaluate(x_test, y_test, verbose=0)
print(f"Test accuracy: {accuracy:.3f}")

После двух эпох код выводит точность на тестовых данных около 0.96. Если заменить "torch" на "jax" или "tensorflow", та же модель запустится на другом фреймворке без изменения остальных строк.

Keras 3 и его бэкенды#

Изначально Keras работал на нескольких движках, включая Theano, TensorFlow и CNTK. Keras 2.3, выпущенный в сентябре 2019 года, стал последней версией с поддержкой нескольких бэкендов; после этого разработка продолжилась в TensorFlow как tf.keras. Keras 3 вновь стал независимым от бэкенда: слои и модели пишутся на keras.ops — наборе операций в стиле NumPy, реализованном каждым бэкендом. Поэтому модель, сохранённую в формате .keras, можно загрузить и обучать на любом бэкенде. При использовании бэкенда PyTorch модель Keras также является объектом torch.nn.Module, который можно применять в собственном цикле обучения PyTorch. Начиная с Keras 3.8, бэкенд OpenVINO для инференса запускает обученные модели на оборудовании Intel.

Начиная с TensorFlow 2.16, установка TensorFlow устанавливает Keras 3, а для кода, которому по-прежнему нужен Keras 2, используется отдельный пакет tf_keras. Конвертеры моделей также поддерживают Keras: когда Ultralytics YOLO экспортирует YOLO26 в формат TensorFlow SavedModel, конвертер onnx2tf послойно воссоздаёт сеть PyTorch из графа ONNX в виде модели Keras, а затем сохраняет её.

Предварительно обученные модели в KerasHub#

KerasHub предоставляет реализации популярных архитектур для Keras 3 с предварительно обученными контрольными точками, например ResNet для изображений, BERT для текста и большие языковые модели Gemma. Имя пресета загружает модель, готовую к переносу обучения: keras_hub.models.ImageClassifier.from_preset("resnet_50_imagenet") возвращает классификатор, обученный на ImageNet, который можно адаптировать к новому датасету с помощью дообучения и того же вызова fit, что использовался выше. Как и остальные модели Keras 3, модели KerasHub работают на любом из трёх бэкендов обучения.

Keras в сравнении с TensorFlow и PyTorch#

  • TensorFlow: Полноценный фреймворк с собственной средой выполнения, компилятором и средствами развёртывания, например TensorFlow Serving и LiteRT. Многие пользователи TensorFlow пишут модели через Keras, а TensorFlow — один из движков, на которых выполняется код Keras.
  • PyTorch: Фреймворк, в котором пользователи обычно самостоятельно пишут цикл обучения или используют такую библиотеку, как PyTorch Lightning. Keras предоставляет цикл через fit и может использовать PyTorch как бэкенд, поэтому эти инструменты не исключают друг друга.
  • JAX: Библиотека Google для компонуемых преобразований функций, дифференцирования, компиляции XLA и векторизации. В JAX нет встроенного API для слоёв или обучения; Keras — один из способов получить такой API поверх JAX.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения