Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Быстрый запуск Android

Чтобы начать работу с TensorFlow Lite на Android, мы рекомендуем изучить следующий пример.

Пример классификации изображений Android

Прочтите классификацию изображений Android TensorFlow Lite для объяснения исходного кода.

В этом примере приложения используется классификация изображений, чтобы постоянно классифицировать все, что он видит с задней камеры устройства. Приложение может работать как на устройстве, так и на эмуляторе.

Логический вывод выполняется с использованием Java API TensorFlow Lite и библиотеки поддержки Android TensorFlow Lite . Демонстрационное приложение классифицирует кадры в реальном времени, отображая наиболее вероятные классификации. Он позволяет пользователю выбирать между моделью с плавающей запятой или квантованной моделью, выбирать количество потоков и решать, запускать ли на CPU, GPU или через NNAPI .

Сборка в Android Studio

Чтобы собрать пример в Android Studio, следуйте инструкциям на README.md .

Создайте свое собственное приложение для Android

Чтобы быстро приступить к написанию собственного кода Android, мы рекомендуем использовать наш пример классификации изображений Android в качестве отправной точки.

В следующих разделах содержится полезная информация по работе с TensorFlow Lite на Android.

Используйте библиотеку задач TensorFlow Lite

Библиотека задач TensorFlow Lite содержит набор мощных и простых в использовании библиотек для конкретных задач, позволяющих разработчикам приложений создавать возможности машинного обучения с TFLite. Он предоставляет оптимизированные готовые интерфейсы моделей для популярных задач машинного обучения, таких как классификация изображений, вопросы и ответы и т. Д. Интерфейсы моделей специально разработаны для каждой задачи, чтобы добиться максимальной производительности и удобства использования. Библиотека задач работает на разных платформах и поддерживается на Java, C ++ и Swift (скоро).

Чтобы использовать библиотеку поддержки в своем приложении для Android, мы рекомендуем использовать AAR, размещенный в JCenter, для библиотеки Task Vision и библиотеки Task Text соответственно.

Вы можете указать это в своих зависимостях build.gradle следующим образом:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-task-vision:0.0.0-nightly'
    implementation 'org.tensorflow:tensorflow-lite-task-text:0.0.0-nightly'
}

См. Введение в обзоре библиотеки задач TensorFlow Lite для получения дополнительных сведений.

Используйте библиотеку поддержки Android TensorFlow Lite

Библиотека поддержки Android TensorFlow Lite упрощает интеграцию моделей в ваше приложение. Он предоставляет высокоуровневые API-интерфейсы, которые помогают преобразовывать необработанные входные данные в форму, требуемую моделью, и интерпретировать выходные данные модели, уменьшая объем необходимого шаблонного кода.

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

Чтобы использовать библиотеку поддержки в своем приложении для Android, мы рекомендуем использовать библиотеку поддержки TensorFlow Lite AAR, размещенную в JCenter .

Вы можете указать это в своих зависимостях build.gradle следующим образом:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite-support:0.0.0-nightly'
}

Чтобы начать работу, следуйте инструкциям в библиотеке поддержки Android TensorFlow Lite .

Используйте TensorFlow Lite AAR от JCenter

Чтобы использовать TensorFlow Lite в своем приложении для Android, мы рекомендуем использовать TensorFlow Lite AAR, размещенный в JCenter .

Вы можете указать это в своих зависимостях build.gradle следующим образом:

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly'
}

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

Мы рекомендуем большинству разработчиков опускать arm32 x86 , x86_64 и arm32. Это может быть достигнуто с помощью следующей конфигурации Gradle, которая, в частности, включает только armeabi-v7a и arm64-v8a , которые должны охватывать большинство современных устройств Android.

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

Чтобы узнать больше об abiFilters , см. NdkOptions в документации Android Gradle.

Создайте приложение для Android с помощью C ++

Есть два способа использовать TFLite через C ++, если вы создаете приложение с помощью NDK:

Использовать TFLite C API

Это рекомендуемый подход. Загрузите TensorFlow Lite AAR, размещенный в JCenter , переименуйте его в tensorflow-lite-*.zip и разархивируйте. Вы должны включить четыре файла headers/tensorflow/lite/ и headers/tensorflow/lite/c/ а также соответствующую динамическую библиотеку libtensorflowlite_jni.so в папку libtensorflowlite_jni.so jni/ вашего проекта NDK.

Заголовочный файл c_api.h содержит базовую документацию по использованию API TFLite C.

Использовать TFLite C ++ API

Если вы хотите использовать TFLite через C ++ API, вы можете создать разделяемые библиотеки C ++:

32-битный armeabi-v7a:

bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so

64-битная arm64-v8a:

bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so

В настоящее время нет простого способа извлечь все необходимые файлы заголовков, поэтому вы должны включить все файлы заголовков в tensorflow/lite/ из репозитория TensorFlow. Кроме того, вам потребуются файлы заголовков от FlatBuffers и Abseil .