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
- Понимание маскировки и заполнения
- Написание собственных обратных вызовов
- Передача обучения и точная настройка
- Мульти-GPU и распределенное обучение
Чтобы узнать больше о Keras, см. следующие темы на keras.io :