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 :