TensorFlow Lite для Android

TensorFlow Lite позволяет запускать модели машинного обучения (ML) TensorFlow в ваших приложениях для Android. Система TensorFlow Lite предоставляет готовые и настраиваемые среды выполнения для быстрого и эффективного запуска моделей на Android, включая возможности аппаратного ускорения.

Модели машинного обучения

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

На этой странице обсуждается использование уже созданных моделей машинного обучения и не рассматривается создание, обучение, тестирование или преобразование моделей. Узнайте больше о выборе, изменении, создании и преобразовании моделей машинного обучения для TensorFlow Lite на странице «Модели» .

Запускайте модели на Android

Модель TensorFlow Lite, работающая внутри приложения Android, принимает данные, обрабатывает их и генерирует прогноз на основе логики модели. Для выполнения модели TensorFlow Lite требуется специальная среда выполнения, а данные, передаваемые в модель, должны быть в определенном формате данных, называемом тензором . Когда модель обрабатывает данные, что называется выполнением вывода , она генерирует результаты прогнозирования в виде новых тензоров и передает их приложению Android, чтобы оно могло выполнить действие, например показать результат пользователю или выполнить дополнительную бизнес-логику.

Функциональный поток выполнения моделей TensorFlow Lite в приложениях Android

Рисунок 1. Функциональный поток выполнения моделей TensorFlow Lite в приложениях Android.

На уровне функционального дизайна вашему Android-приложению для запуска модели TensorFlow Lite необходимы следующие элементы:

  • Среда выполнения TensorFlow Lite для выполнения модели
  • Обработчик входных данных модели для преобразования данных в тензоры
  • Обработчик вывода модели для получения тензоров выходных результатов и интерпретации их как результатов прогнозирования.

В следующих разделах описывается, как библиотеки и инструменты TensorFlow Lite предоставляют эти функциональные элементы.

Создавайте приложения с помощью TensorFlow Lite.

В этом разделе описан рекомендуемый и наиболее распространенный путь внедрения TensorFlow Lite в ваше приложение для Android. Наибольшее внимание следует уделить разделам среды выполнения и библиотек разработки . Если вы разработали собственную модель, обязательно ознакомьтесь с разделом «Пути расширенной разработки» .

Параметры среды выполнения

Существует несколько способов включить среду выполнения для выполнения моделей в вашем приложении Android. Вот предпочтительные варианты:

В общем, вам следует использовать среду выполнения, предоставляемую сервисами Google Play, поскольку она более экономична, чем стандартная среда, поскольку загружается динамически, сохраняя размер вашего приложения меньшим. Сервисы Google Play также автоматически используют самую последнюю стабильную версию среды выполнения TensorFlow Lite, предоставляя вам дополнительные функции и повышая производительность с течением времени. Если вы предлагаете свое приложение на устройствах, которые не включают сервисы Google Play, или вам необходимо тщательно управлять средой выполнения ML, вам следует использовать стандартную среду выполнения TensorFlow Lite. Этот вариант добавляет в ваше приложение дополнительный код, позволяя вам лучше контролировать среду выполнения машинного обучения в вашем приложении за счет увеличения размера загружаемого приложения.

Вы получаете доступ к этим средам выполнения в своем приложении Android, добавляя библиотеки разработки TensorFlow Lite в среду разработки приложений. Сведения о том, как использовать стандартные среды выполнения в вашем приложении, см. в следующем разделе.

Библиотеки

Доступ к Interpreter API можно получить с помощью сервисов Google Play . Вы можете использовать ядро ​​TensorFlow Lite и библиотеки поддержки в своем приложении для Android. Подробные сведения о программировании, использовании библиотек TensorFlow Lite и сред выполнения см. в разделе Инструменты разработки для Android .

Получить модели

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

Обработка входных данных

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

Выполнить выводы

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

Скорость, с которой модель может генерировать логические выводы на конкретном устройстве, зависит от размера обрабатываемых данных, сложности модели и доступных вычислительных ресурсов, таких как память и ЦП, или специализированных процессоров, называемых ускорителями . Модели машинного обучения могут работать быстрее на этих специализированных процессорах, таких как графические процессоры (GPU) и тензорные процессоры (TPU), с использованием аппаратных драйверов TensorFlow Lite, называемых делегатами . Дополнительные сведения о делегатах и ​​аппаратном ускорении обработки модели см. в обзоре аппаратного ускорения .

Обработка результатов вывода

Модели генерируют результаты прогнозирования в виде тензоров, которые ваше приложение Android должно обрабатывать, выполняя действия или отображая результат пользователю. Выходные результаты модели могут быть как простыми, например, числом, соответствующим одному результату (0 = собака, 1 = кошка, 2 = птица) для классификации изображений, так и гораздо более сложными результатами, такими как несколько ограничивающих рамок для нескольких классифицированных объектов в изображение с рейтингом достоверности прогноза от 0 до 1.

Перспективные пути развития

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

Расширенные среды выполнения

В дополнение к стандартной среде выполнения и средам выполнения сервисов Google Play для TensorFlow Lite существуют дополнительные среды выполнения, которые вы можете использовать с вашим приложением Android. Наиболее вероятное использование этих сред — если у вас есть модель машинного обучения, использующая операции машинного обучения, которые не поддерживаются стандартной средой выполнения для TensorFlow Lite.

Среда выполнения TensorFlow Lite Flex позволяет включать определенные операторы, необходимые для вашей модели. В качестве расширенного варианта запуска вашей модели вы можете создать TensorFlow Lite для Android, включив в него операторов и другие функции, необходимые для запуска вашей модели машинного обучения TensorFlow. Дополнительные сведения см. в разделе Сборка TensorFlow Lite для Android .

API C и C++

TensorFlow Lite также предоставляет API для запуска моделей с использованием C и C++. Если ваше приложение использует Android NDK , вам следует рассмотреть возможность использования этого API. Вы также можете рассмотреть возможность использования этого API, если хотите иметь возможность совместного использования кода между несколькими платформами. Дополнительную информацию об этом варианте разработки см. на странице «Инструменты разработки» .

Выполнение модели на сервере

В общем, вам следует запускать модели в своем приложении на устройстве Android, чтобы воспользоваться преимуществами более низкой задержки и повышения конфиденциальности данных для ваших пользователей. Однако бывают случаи, когда запуск модели на облачном сервере вне устройства является лучшим решением. Например, если у вас есть большая модель, которую нелегко сжать до размера, подходящего для устройств Android ваших пользователей, или которую можно выполнить с достаточной производительностью на этих устройствах. Этот подход также может быть вашим предпочтительным решением, если высшим приоритетом является стабильная производительность модели на широком спектре устройств.

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

Разработка и оптимизация индивидуальной модели

Более продвинутые пути разработки, вероятно, будут включать разработку собственных моделей машинного обучения и оптимизацию этих моделей для использования на устройствах Android. Если вы планируете создавать собственные модели, обязательно рассмотрите возможность применения к моделям методов квантования , чтобы уменьшить затраты на память и обработку. Дополнительную информацию о том, как создавать высокопроизводительные модели для использования с TensorFlow Lite, см. в разделе «Рекомендации по производительности» в разделе «Модели».