TensorFlow Model Garden предоставляет реализации многих современных моделей машинного обучения (ML) для зрения и обработки естественного языка (NLP), а также инструменты рабочего процесса, позволяющие быстро настраивать и запускать эти модели на стандартных наборах данных. Независимо от того, хотите ли вы оценить производительность известной модели, проверить результаты недавно опубликованных исследований или расширить существующие модели, Model Garden может помочь вам продвигать свои исследования и приложения в области машинного обучения.
Model Garden включает следующие ресурсы для разработчиков машинного обучения:
- Официальные модели зрения и НЛП, поддерживаемые инженерами Google.
- Исследовательские модели, опубликованные в рамках исследовательских работ по машинному обучению
- Структура обучающего эксперимента для быстрой декларативной настройки обучения официальных моделей
- Специализированные операции машинного обучения для обработки зрения и естественного языка (NLP)
- Управление циклом обучения модели с помощью Orbit
Эти ресурсы предназначены для использования с платформой TensorFlow Core и интеграции с вашими существующими проектами разработки TensorFlow. Ресурсы Model Garden также предоставляются по лицензии с открытым исходным кодом , поэтому вы можете свободно расширять и распространять модели и инструменты.
Практические модели машинного обучения требуют больших вычислительных ресурсов для обучения и запуска и могут потребовать ускорителей, таких как графические процессоры (GPU) и тензорные процессоры (TPU). Большинство моделей в Model Garden обучались на больших наборах данных с использованием TPU. Однако вы также можете обучать и запускать эти модели на процессорах GPU и CPU.
Модели садовых моделей
Модели машинного обучения в Model Garden включают полный код, поэтому вы можете тестировать, обучать или переобучать их для исследований и экспериментов. Модельный сад включает в себя две основные категории моделей: официальные модели и исследовательские модели .
Официальные модели
Официальный репозиторий моделей — это коллекция современных моделей с упором на зрение и обработку естественного языка (NLP). Эти модели реализованы с использованием текущих высокоуровневых API TensorFlow 2.x. Библиотеки моделей в этом репозитории оптимизированы для обеспечения высокой производительности и активно поддерживаются инженерами Google. Официальные модели включают дополнительные метаданные, которые можно использовать для быстрой настройки экспериментов с помощью среды обучающих экспериментов Model Garden.
Исследовательские модели
Репозиторий исследовательских моделей представляет собой набор моделей, опубликованных в виде ресурсов кода для исследовательских работ. Эти модели реализованы с использованием как TensorFlow 1.x, так и 2.x. Библиотеки моделей в исследовательской папке поддерживаются владельцами кода и исследовательским сообществом.
Структура обучающего эксперимента
Платформа обучающих экспериментов Model Garden позволяет быстро собирать и запускать обучающие эксперименты, используя официальные модели и стандартные наборы данных. Учебная среда использует дополнительные метаданные, включенные в официальные модели Model Garden, чтобы вы могли быстро настроить модели с помощью модели декларативного программирования. Вы можете определить обучающий эксперимент с помощью команд Python в библиотеке моделей TensorFlow или настроить обучение с помощью файла конфигурации YAML, как в этом примере .
Учебная среда использует tfm.core.base_trainer.ExperimentConfig
в качестве объекта конфигурации, который содержит следующие объекты конфигурации верхнего уровня:
-
runtime
: определяет оборудование для обработки, стратегию распространения и другие оптимизации производительности. -
task
: определяет модель, обучающие данные, потери и инициализацию. -
trainer
: определяет оптимизатор, циклы обучения, циклы оценки, сводки и контрольные точки.
Полный пример с использованием структуры обучающего эксперимента Model Garden см. в учебнике Классификация изображений с помощью Model Garden . Для получения информации о структуре обучающего эксперимента ознакомьтесь с документацией по TensorFlow Models API . Если вы ищете решение для управления циклами обучения для экспериментов по обучению моделей, ознакомьтесь с Orbit .
Специализированные операции машинного обучения
Model Garden содержит множество операций машинного зрения и НЛП, специально разработанных для выполнения современных моделей, которые эффективно работают на графических процессорах и ТПУ. Ознакомьтесь с документацией по API библиотеки TensorFlow Models Vision, чтобы найти список специализированных операций машинного зрения . Ознакомьтесь с документацией по API библиотеки TensorFlow Models NLP для получения списка операций NLP . Эти библиотеки также включают дополнительные служебные функции, используемые для обработки зрения и данных NLP, обучения и выполнения моделей.
Тренировочные циклы с Orbit
Инструмент Orbit — это гибкая, легковесная библиотека, предназначенная для упрощения написания пользовательских обучающих циклов в TensorFlow 2.x, и хорошо работает с фреймворком обучающих экспериментов Model Garden. Orbit выполняет общие задачи обучения модели, такие как сохранение контрольных точек, выполнение оценки модели и настройка написания сводки. Он легко интегрируется с tf.distribute
и поддерживает работу на различных типах устройств, включая аппаратное обеспечение CPU, GPU и TPU. Инструмент Orbit также имеет открытый исходный код , поэтому вы можете расширять его и адаптировать к потребностям обучения вашей модели.
Обычно вы обучаете модели TensorFlow, написав собственный цикл обучения или используя высокоуровневую функцию Keras Model.fit . Для простых моделей вы можете определить собственный цикл обучения и управлять им с помощью низкоуровневых методов TensorFlow, таких как tf.GradientTape
или tf.function
. В качестве альтернативы вы можете использовать Model.fit
высокого уровня.
Однако если ваша модель сложна и цикл обучения требует более гибкого управления или настройки, вам следует использовать Orbit. Вы можете определить большую часть своего тренировочного цикла с помощью класса orbit.AbstractTrainer
или orbit.StandardTrainer
. Узнайте больше об инструменте Orbit в документации Orbit API .