Keras: API высокого уровня для TensorFlow.

Keras — это API высокого уровня платформы TensorFlow. Он предоставляет доступный и высокопроизводительный интерфейс для решения задач машинного обучения (ML) с упором на современное глубокое обучение. Keras охватывает каждый этап рабочего процесса машинного обучения: от обработки данных до настройки гиперпараметров и развертывания. Он был разработан с упором на возможность быстрого экспериментирования.

С Keras у вас есть полный доступ к масштабируемости и кроссплатформенным возможностям TensorFlow. Вы можете запускать Keras на модуле TPU или больших кластерах графических процессоров, а также экспортировать модели Keras для запуска в браузере или на мобильных устройствах. Вы также можете обслуживать модели Keras через веб-API.

Keras предназначен для снижения когнитивной нагрузки за счет достижения следующих целей:

  • Предлагайте простые и согласованные интерфейсы.
  • Минимизируйте количество действий, необходимых для распространенных случаев использования.
  • Предоставляйте четкие и действенные сообщения об ошибках.
  • Следуйте принципу постепенного раскрытия сложности: начать легко, и вы можете выполнять сложные рабочие процессы, обучаясь по ходу дела.
  • Поможет вам написать краткий, читаемый код.

Кому следует использовать Керас

Короткий ответ: каждый пользователь TensorFlow должен использовать API-интерфейсы Keras по умолчанию. Независимо от того, являетесь ли вы инженером, исследователем или специалистом по машинному обучению, вам следует начать с Keras.

Существует несколько вариантов использования (например, создание инструментов поверх TensorFlow или разработка собственной высокопроизводительной платформы), для которых требуются низкоуровневые API-интерфейсы TensorFlow Core . Но если ваш вариант использования не попадает ни в одно из приложений Core API , вам следует отдать предпочтение Keras.

API-компоненты Keras

Основными структурами данных Keras являются слои и модели . Слой — это простое преобразование ввода-вывода, а модель — это ориентированный ациклический граф (DAG) слоев.

Слои

Класс tf.keras.layers.Layer — это фундаментальная абстракция в Keras. Layer инкапсулирует состояние (веса) и некоторые вычисления (определенные в методе tf.keras.layers.Layer.call ).

Веса, созданные слоями, могут быть обучаемыми или необучаемыми. Слои можно компоновать рекурсивно: если вы назначите экземпляр слоя в качестве атрибута другого слоя, внешний слой начнет отслеживать веса, созданные внутренним слоем.

Вы также можете использовать слои для выполнения задач предварительной обработки данных, таких как нормализация и векторизация текста. Слои предварительной обработки можно включать непосредственно в модель во время или после обучения, что делает модель переносимой.

Модели

Модель — это объект, который группирует слои вместе и который можно обучать на данных.

Самый простой тип модели — Sequential модель , представляющая собой линейную стопку слоев. Для более сложных архитектур можно либо использовать функциональный API Keras , который позволяет строить произвольные графы слоев, либо использовать подклассы для написания моделей с нуля .

Класс tf.keras.Model имеет встроенные методы обучения и оценки:

  • tf.keras.Model.fit : обучает модель в течение фиксированного количества эпох.
  • tf.keras.Model.predict : генерирует выходные прогнозы для входных выборок.
  • tf.keras.Model.evaluate : возвращает значения потерь и метрик для модели; настраивается с помощью метода tf.keras.Model.compile .

Эти методы дают вам доступ к следующим встроенным функциям обучения:

  • Обратные вызовы . Вы можете использовать встроенные обратные вызовы для ранней остановки, проверки модели и мониторинга TensorBoard . Вы также можете реализовать собственные обратные вызовы .
  • Распределенное обучение . Вы можете легко масштабировать свое обучение на несколько графических процессоров, TPU или устройств.
  • Шаговое слияние. С помощью аргумента steps_per_execution в tf.keras.Model.compile вы можете обрабатывать несколько пакетов за один вызов tf.function , что значительно улучшает использование устройств на TPU.

Подробный обзор того, как использовать fit , см. в руководстве по обучению и оценке . Чтобы узнать, как настроить встроенные циклы обучения и оценки, см. раздел Настройка того, что происходит в fit() .

Другие API и инструменты

Keras предоставляет множество других API и инструментов для глубокого обучения, в том числе:

Полный список доступных API см. в справочнике по API Keras . Чтобы узнать больше о других проектах и ​​инициативах Keras, см. Экосистема Keras .

Следующие шаги

Чтобы начать использовать Keras с TensorFlow, ознакомьтесь со следующими темами:

Чтобы узнать больше о Keras, см. следующие темы на keras.io :