Menggunakan unit pemrosesan grafis (GPU) untuk menjalankan model pembelajaran mesin (ML) dapat meningkatkan performa dan pengalaman pengguna aplikasi Anda yang mendukung ML secara signifikan. Di perangkat Android, Anda dapat mengaktifkan eksekusi model yang dipercepat GPU menggunakan delegasi dan salah satu API berikut:
Halaman ini menjelaskan cara mengaktifkan akselerasi GPU untuk model TensorFlow Lite di aplikasi Android menggunakan Task Library. Untuk informasi selengkapnya tentang delegasi GPU untuk TensorFlow Lite, termasuk praktik terbaik dan teknik lanjutan, lihat halaman delegasi GPU .
Gunakan GPU dengan TensorFlow Lite dengan layanan Google Play
Pustaka Tugas TensorFlow Lite menyediakan serangkaian API khusus tugas untuk membuat aplikasi pembelajaran mesin. Bagian ini menjelaskan cara menggunakan delegasi akselerator GPU dengan API ini menggunakan TensorFlow Lite dengan layanan Google Play.
TensorFlow Lite dengan layanan Google Play adalah jalur yang disarankan untuk menggunakan TensorFlow Lite di Android. Jika aplikasi Anda menargetkan perangkat yang tidak menjalankan Google Play, lihat bagian GPU dengan Task Library dan TensorFlow Lite mandiri .
Tambahkan dependensi proyek
Untuk mengaktifkan akses ke delegasi GPU dengan Pustaka Tugas TensorFlow Lite menggunakan layanan Google Play, tambahkan com.google.android.gms:play-services-tflite-gpu
ke dependensi file build.gradle
aplikasi Anda:
dependencies {
...
implementation 'com.google.android.gms:play-services-tflite-gpu:16.0.0'
}
Aktifkan akselerasi GPU
Kemudian, verifikasi secara asinkron bahwa delegasi GPU tersedia untuk perangkat menggunakan kelas TfLiteGpu
dan aktifkan opsi delegasi GPU untuk kelas model Task API Anda dengan kelas BaseOptions
. Misalnya, Anda dapat mengatur GPU di ObjectDetector
seperti yang ditunjukkan dalam contoh kode berikut:
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() }
Jawa
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() });
Gunakan GPU dengan TensorFlow Lite mandiri
Jika aplikasi Anda menargetkan perangkat yang tidak menjalankan Google Play, delegasi GPU dapat digabungkan ke aplikasi Anda dan menggunakannya dengan TensorFlow Lite versi mandiri.
Tambahkan dependensi proyek
Untuk mengaktifkan akses ke delegasi GPU dengan Pustaka Tugas TensorFlow Lite menggunakan TensorFlow Lite versi mandiri, tambahkan org.tensorflow:tensorflow-lite-gpu-delegate-plugin
ke dependensi file build.gradle
aplikasi Anda:
dependencies {
...
implementation 'org.tensorflow:tensorflow-lite'
implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin'
}
Aktifkan akselerasi GPU
Kemudian aktifkan opsi delegasi GPU untuk kelas model Task API Anda dengan kelas BaseOptions
. Misalnya, Anda dapat mengatur GPU di ObjectDetector
seperti yang ditunjukkan dalam contoh kode berikut:
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)
Jawa
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);