TensorFlow Lite для Android

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

Дорожная карта обучения

Изучите концепции и дизайн кода для создания приложений для Android с помощью TensorFlow Lite, просто продолжайте читать .
Начните кодировать приложение для Android с помощью TensorFlow Lite прямо сейчас с помощью Quickstart .
Узнайте о выборе и использовании моделей машинного обучения с TensorFlow Lite в документации по моделям .

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

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, или вам необходимо тщательно управлять средой выполнения машинного обучения, вам следует использовать стандартную среду выполнения TensorFlow Lite. Этот вариант связывает дополнительный код с вашим приложением, позволяя вам лучше контролировать среду выполнения машинного обучения в вашем приложении за счет увеличения размера загружаемого приложения.

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

API и библиотеки для разработки

Существует два основных API, которые вы можете использовать для интеграции моделей машинного обучения TensorFlow Lite в ваше приложение для Android:

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

Библиотеки

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

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

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

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

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

Библиотека задач TensorFlow Lite предоставляет логику обработки данных для преобразования визуальных, текстовых и аудиоданных в тензоры правильной формы для обработки моделью 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 .

C и C++ API

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

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

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

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

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

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

Следующие шаги