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, ознакомьтесь со следующими темами:
- Последовательная модель
- Функциональный API
- Обучение и оценка с помощью встроенных методов
- Создание новых слоев и моделей с помощью подклассов
- Сериализация и сохранение
- Работа со слоями предварительной обработки
- Настройка того, что происходит в fit()
- Написание обучающего цикла с нуля
- Работа с RNN
- Понимание маскирования и заполнения
- Написание собственных обратных вызовов
- Трансферное обучение и тонкая настройка
- Multi-GPU и распределенное обучение
Чтобы узнать больше о Keras, см. следующие темы на keras.io :