שימוש ביחידות עיבוד גרפיות (GPU) להפעלת מודלים של למידת מכונה (ML) שלך יכול לשפר באופן דרמטי את הביצועים וחווית המשתמש של היישומים התומכים ב-ML שלך. במכשירי אנדרואיד, אתה יכול לאפשר הפעלה מואצת של GPU של הדגמים שלך באמצעות נציג ואחד מממשקי ה-API הבאים:
דף זה מתאר כיצד להפעיל האצת GPU עבור דגמי TensorFlow Lite באפליקציות אנדרואיד באמצעות ספריית המשימות. למידע נוסף על נציג GPU עבור TensorFlow Lite, כולל שיטות עבודה מומלצות וטכניקות מתקדמות, עיין בדף נציגי GPU .
השתמש ב-GPU עם TensorFlow Lite עם שירותי Google Play
ספריות המשימות של TensorFlow Lite מספקות קבוצה של ממשקי API ספציפיים למשימה לבניית יישומי למידת מכונה. סעיף זה מתאר כיצד להשתמש באציל מאיץ ה-GPU עם ממשקי API אלה באמצעות TensorFlow Lite עם שירותי Google Play.
TensorFlow Lite עם שירותי Google Play הוא הנתיב המומלץ לשימוש TensorFlow Lite באנדרואיד. אם האפליקציה שלך ממקדת למכשירים שבהם לא פועל Google Play, עיין בקטע ה- GPU עם ספריית המשימות ו-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() }
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 עם 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)
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);