Google I/O — это обертка! Наверстать упущенное в сеансах TensorFlow Просмотреть сеансы

ТензорФлоу Лайт

TensorFlow Lite — это набор инструментов, который обеспечивает машинное обучение на устройстве, помогая разработчикам запускать свои модели на мобильных, встроенных и периферийных устройствах.

Ключевая особенность

  • Оптимизировано для машинного обучения на устройстве за счет устранения 5 ключевых ограничений: задержка (нет возможности обращения к серверу), конфиденциальность (личные данные не покидают устройство), возможность подключения (подключение к Интернету не требуется), размер (уменьшенная модель и двоичный размер) и энергопотребление (эффективный вывод и отсутствие сетевых подключений).
  • Поддержка нескольких платформ , включая устройства Android и iOS , встроенный Linux и микроконтроллеры .
  • Поддержка различных языков , включая Java, Swift, Objective-C, C++ и Python.
  • Высокая производительность с аппаратным ускорением и оптимизацией модели .
  • Сквозные примеры для общих задач машинного обучения, таких как классификация изображений, обнаружение объектов, оценка позы, ответы на вопросы, классификация текста и т. д. на нескольких платформах.

Рабочий процесс разработки

Следующее руководство описывает каждый шаг рабочего процесса и содержит ссылки на дополнительные инструкции:

1. Создайте модель TensorFlow Lite

Модель TensorFlow Lite представлена ​​в специальном эффективном переносимом формате, известном как FlatBuffers (обозначается расширением файла .tflite ). Это дает несколько преимуществ по сравнению с форматом модели буфера протокола TensorFlow, таких как меньший размер (небольшой размер кода) и более быстрое логическое заключение (данные доступны напрямую без дополнительного шага синтаксического анализа/распаковки), что позволяет TensorFlow Lite эффективно работать на устройствах с ограниченными вычислительными ресурсами и ресурсами памяти. .

Модель TensorFlow Lite может дополнительно включать метаданные с удобочитаемым описанием модели и машиночитаемыми данными для автоматического создания конвейеров предварительной и постобработки во время логического вывода на устройстве. Дополнительные сведения см. в разделе Добавление метаданных .

Вы можете создать модель TensorFlow Lite следующими способами:

  • Используйте существующую модель TensorFlow Lite: обратитесь к примерам TensorFlow Lite , чтобы выбрать существующую модель. Модели могут содержать или не содержать метаданные.

  • Создайте модель TensorFlow Lite: используйте конструктор моделей TensorFlow Lite , чтобы создать модель с собственным набором данных. По умолчанию все модели содержат метаданные.

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

2. Запустите вывод

Под выводом понимается процесс выполнения модели TensorFlow Lite на устройстве для создания прогнозов на основе входных данных. Вывод можно выполнить следующими способами в зависимости от типа модели:

  • Модели без метаданных : используйте API интерпретатора TensorFlow Lite . Поддерживается на нескольких платформах и языках, таких как Java, Swift, C++, Objective-C и Python.

  • Модели с метаданными : вы можете либо использовать готовые API-интерфейсы с помощью библиотеки задач TensorFlow Lite , либо создавать собственные конвейеры логического вывода с помощью библиотеки поддержки TensorFlow Lite . На устройствах Android пользователи могут автоматически генерировать обёртки кода с помощью привязки модели Android Studio ML или генератора кода TensorFlow Lite . Поддерживается только на Java (Android), работа над Swift (iOS) и C++ еще не завершена.

На устройствах Android и iOS вы можете повысить производительность с помощью аппаратного ускорения. На любой из платформ вы можете использовать делегата графического процессора , на Android вы можете использовать делегата NNAPI (для более новых устройств) или делегата Hexagon (на старых устройствах), а на iOS вы можете использовать делегата Core ML . Чтобы добавить поддержку новых аппаратных ускорителей, вы можете определить собственный делегат .

Начать

Вы можете обратиться к следующим руководствам в зависимости от вашего целевого устройства:

  • Android и iOS: изучите краткое руководство по Android и iOS .

  • Embedded Linux: изучите краткое руководство по Python для встроенных устройств, таких как устройства Raspberry Pi и Coral с Edge TPU , или инструкции по сборке C++ для ARM .

  • Микроконтроллеры: изучите библиотеку TensorFlow Lite для микроконтроллеров для микроконтроллеров и DSP, которые содержат всего несколько килобайт памяти.

Технические ограничения