Использование графических процессоров (GPU) для запуска моделей машинного обучения (ML) может значительно повысить производительность и удобство работы с приложениями с поддержкой ML. На устройствах Android вы можете включить выполнение ваших моделей с ускорением на графическом процессоре, используя делегат и один из следующих API:
- API-интерпретатор — руководство
- API библиотеки задач — это руководство
- Нативный (C/C++) API — это руководство
На этой странице описано, как включить ускорение графического процессора для моделей TensorFlow Lite в приложениях Android с помощью библиотеки задач. Дополнительную информацию о делегате графического процессора для TensorFlow Lite, включая лучшие практики и передовые методы, см. на странице делегатов графического процессора .
Используйте графический процессор с TensorFlow Lite с сервисами Google Play.
Библиотеки задач TensorFlow Lite предоставляют набор API-интерфейсов для конкретных задач для создания приложений машинного обучения. В этом разделе описывается, как использовать делегат ускорителя графического процессора с этими API с помощью TensorFlow Lite со службами Google Play.
TensorFlow Lite с сервисами Google Play — рекомендуемый способ использования TensorFlow Lite на Android. Если ваше приложение предназначено для устройств, на которых не работает Google Play, см. раздел «ГП с библиотекой задач и автономный TensorFlow Lite» .
Добавить зависимости проекта
Чтобы включить доступ к делегату графического процессора с помощью библиотек задач TensorFlow Lite с помощью сервисов Google Play, добавьте com.google.android.gms:play-services-tflite-gpu
в зависимости файла build.gradle
вашего приложения:
dependencies {
...
implementation 'com.google.android.gms:play-services-tflite-gpu:16.0.0'
}
Включить ускорение графического процессора
Затем асинхронно убедитесь, что делегат графического процессора доступен для устройства с помощью класса TfLiteGpu
, и включите параметр делегата графического процессора для класса модели Task API с помощью класса BaseOptions
. Например, вы можете настроить графический процессор в ObjectDetector
, как показано в следующих примерах кода:
Котлин
val useGpuTask = TfLiteGpu.isGpuDelegateAvailable(context) lateinit val optionsTask = useGpuTask.continueWith { task -> val baseOptionsBuilder = BaseOptions.builder() if (task.result) { baseOptionsBuilder.useGpu() } ObjectDetectorOptions.builder() .setBaseOptions(baseOptionsBuilder.build()) .setMaxResults(1) .build() }
Джава
TaskuseGpuTask = TfLiteGpu.isGpuDelegateAvailable(context); Task optionsTask = useGpuTask.continueWith({ task -> BaseOptions baseOptionsBuilder = BaseOptions.builder(); if (task.getResult()) { baseOptionsBuilder.useGpu(); } return ObjectDetectorOptions.builder() .setBaseOptions(baseOptionsBuilder.build()) .setMaxResults(1) .build() });
Используйте графический процессор с автономным TensorFlow Lite.
Если ваше приложение предназначено для устройств, на которых не работает Google Play, можно связать делегат GPU с вашим приложением и использовать его с автономной версией TensorFlow Lite.
Добавить зависимости проекта
Чтобы включить доступ к делегату графического процессора с помощью библиотек задач TensorFlow Lite с использованием автономной версии TensorFlow Lite, добавьте org.tensorflow:tensorflow-lite-gpu-delegate-plugin
к зависимостям файла build.gradle
вашего приложения:
dependencies {
...
implementation 'org.tensorflow:tensorflow-lite'
implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin'
}
Включить ускорение графического процессора
Затем включите опцию делегирования графического процессора для класса модели Task API с помощью класса BaseOptions
. Например, вы можете настроить графический процессор в ObjectDetector
, как показано в следующих примерах кода:
Котлин
import org.tensorflow.lite.task.core.BaseOptions import org.tensorflow.lite.task.gms.vision.detector.ObjectDetector val baseOptions = BaseOptions.builder().useGpu().build() val options = ObjectDetector.ObjectDetectorOptions.builder() .setBaseOptions(baseOptions) .setMaxResults(1) .build() val objectDetector = ObjectDetector.createFromFileAndOptions( context, model, options)
Джава
import org.tensorflow.lite.task.core.BaseOptions import org.tensorflow.lite.task.gms.vision.detector.ObjectDetector BaseOptions baseOptions = BaseOptions.builder().useGpu().build(); ObjectDetectorOptions options = ObjectDetectorOptions.builder() .setBaseOptions(baseOptions) .setMaxResults(1) .build(); val objectDetector = ObjectDetector.createFromFileAndOptions( context, model, options);