Makine öğrenimi (ML) modellerinizi çalıştırmak için grafik işlem birimlerini (GPU'lar) kullanmak, ML özellikli uygulamalarınızın performansını ve kullanıcı deneyimini önemli ölçüde artırabilir. Android cihazlarda, bir temsilci ve aşağıdaki API'lerden birini kullanarak modellerinizin GPU hızlandırmalı yürütülmesini etkinleştirebilirsiniz:
Bu sayfada, Görev kitaplığı kullanılarak Android uygulamalarında TensorFlow Lite modelleri için GPU hızlandırmanın nasıl etkinleştirileceği açıklanmaktadır. TensorFlow Lite için GPU temsilcisi hakkında en iyi uygulamalar ve gelişmiş teknikler de dahil olmak üzere daha fazla bilgi için GPU temsilcileri sayfasına bakın.
GPU'yu TensorFlow Lite ile Google Play hizmetleriyle kullanın
TensorFlow Lite Görev Kitaplıkları, makine öğrenimi uygulamaları oluşturmak için göreve özgü bir dizi API sağlar. Bu bölümde, Google Play hizmetleriyle TensorFlow Lite kullanılarak GPU hızlandırıcı temsilcisinin bu API'lerle nasıl kullanılacağı açıklanmaktadır.
Google Play hizmetleriyle birlikte TensorFlow Lite, TensorFlow Lite'ı Android'de kullanmanın önerilen yoludur. Uygulamanız Google Play'i çalıştırmayan cihazları hedefliyorsa Görev Kitaplığı içeren GPU'ya ve bağımsız TensorFlow Lite bölümüne bakın.
Proje bağımlılıkları ekleyin
Google Play hizmetlerini kullanarak TensorFlow Lite Görev Kitaplıkları ile GPU temsilcisine erişimi etkinleştirmek için uygulamanızın build.gradle
dosyasının bağımlılıklarına com.google.android.gms:play-services-tflite-gpu
ekleyin:
dependencies {
...
implementation 'com.google.android.gms:play-services-tflite-gpu:16.0.0'
}
GPU hızlandırmayı etkinleştir
Ardından, TfLiteGpu
sınıfını kullanarak cihaz için GPU temsilcisinin mevcut olduğunu eşzamansız olarak doğrulayın ve BaseOptions
sınıfıyla Görev API modeli sınıfınız için GPU temsilcisi seçeneğini etkinleştirin. Örneğin, aşağıdaki kod örneklerinde gösterildiği gibi ObjectDetector
GPU'yu ayarlayabilirsiniz:
Kotlin
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() }
Java
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() });
GPU'yu bağımsız TensorFlow Lite ile kullanın
Uygulamanız Google Play çalıştırmayan cihazları hedefliyorsa GPU temsilcisini uygulamanıza paketleyip bunu TensorFlow Lite'ın bağımsız sürümüyle kullanmak mümkündür.
Proje bağımlılıkları ekleyin
TensorFlow Lite'ın bağımsız sürümünü kullanarak TensorFlow Lite Görev Kitaplıkları ile GPU temsilcisine erişimi etkinleştirmek için uygulamanızın build.gradle
dosyasının bağımlılıklarına org.tensorflow:tensorflow-lite-gpu-delegate-plugin
ekleyin:
dependencies {
...
implementation 'org.tensorflow:tensorflow-lite'
implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin'
}
GPU hızlandırmayı etkinleştir
Ardından BaseOptions
sınıfıyla Görev API modeli sınıfınız için GPU temsilci seçeneğini etkinleştirin. Örneğin, aşağıdaki kod örneklerinde gösterildiği gibi ObjectDetector
GPU'yu ayarlayabilirsiniz:
Kotlin
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)
Java
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);