يمكن أن يؤدي استخدام وحدات معالجة الرسومات (GPUs) لتشغيل نماذج التعلم الآلي (ML) إلى تحسين الأداء وتجربة المستخدم للتطبيقات التي تدعم التعلم الآلي (ML) بشكل كبير. على أجهزة Android، يمكنك تمكين التنفيذ المسرع بواسطة GPU لنماذجك باستخدام مفوض وأحد واجهات برمجة التطبيقات التالية:
- مترجم API - دليل
- واجهة برمجة تطبيقات مكتبة المهام - هذا الدليل
- واجهة برمجة التطبيقات الأصلية (C/C++) - هذا الدليل
توضح هذه الصفحة كيفية تمكين تسريع GPU لنماذج TensorFlow Lite في تطبيقات Android باستخدام مكتبة المهام. لمزيد من المعلومات حول مندوب GPU لـ TensorFlow Lite، بما في ذلك أفضل الممارسات والتقنيات المتقدمة، راجع صفحة مندوبي GPU .
استخدم GPU مع TensorFlow Lite مع خدمات Google Play
توفر مكتبات المهام TensorFlow Lite مجموعة من واجهات برمجة التطبيقات الخاصة بالمهام لبناء تطبيقات التعلم الآلي. يصف هذا القسم كيفية استخدام مندوب تسريع GPU مع واجهات برمجة التطبيقات هذه باستخدام TensorFlow Lite مع خدمات Google Play.
يعد TensorFlow Lite مع خدمات Google Play هو المسار الموصى به لاستخدام TensorFlow Lite على Android. إذا كان تطبيقك يستهدف الأجهزة التي لا تعمل بنظام Google Play، فراجع وحدة معالجة الرسومات مع مكتبة المهام وقسم TensorFlow Lite المستقل .
إضافة تبعيات المشروع
لتمكين الوصول إلى مندوب GPU من خلال مكتبات مهام 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'
}
تمكين تسريع GPU
بعد ذلك، تحقق بشكل غير متزامن من أن مفوض GPU متاح للجهاز الذي يستخدم فئة TfLiteGpu
وقم بتمكين خيار مفوض GPU لفئة نموذج Task API الخاصة بك مع فئة BaseOptions
. على سبيل المثال، يمكنك إعداد GPU في 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.
إضافة تبعيات المشروع
لتمكين الوصول إلى مندوب GPU من خلال مكتبات المهام 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'
}
تمكين تسريع GPU
ثم قم بتمكين خيار تفويض GPU لفئة نموذج Task API الخاصة بك مع فئة BaseOptions
. على سبيل المثال، يمكنك إعداد GPU في 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);