استفاده از واحدهای پردازش گرافیکی (GPU) برای اجرای مدلهای یادگیری ماشینی (ML) میتواند عملکرد و تجربه کاربری برنامههای دارای ML را بهطور چشمگیری بهبود بخشد. در دستگاههای Android، میتوانید با استفاده از یک نماینده و یکی از APIهای زیر، اجرای مدلهای خود را با سرعت GPU فعال کنید:
این صفحه نحوه فعال کردن شتاب GPU را برای مدلهای TensorFlow Lite در برنامههای Android با استفاده از کتابخانه Task شرح میدهد. برای اطلاعات بیشتر در مورد نماینده GPU برای TensorFlow Lite، از جمله بهترین شیوهها و تکنیکهای پیشرفته، به صفحه نمایندگان GPU مراجعه کنید.
از GPU با TensorFlow Lite با خدمات Google Play استفاده کنید
TensorFlow Lite Task Libraries مجموعهای از APIهای مختص کار را برای ساخت برنامههای یادگیری ماشین ارائه میکنند. این بخش نحوه استفاده از نماینده شتاب دهنده GPU با این APIها با استفاده از TensorFlow Lite با خدمات Google Play را توضیح می دهد.
TensorFlow Lite با خدمات Google Play مسیر توصیه شده برای استفاده از TensorFlow Lite در اندروید است. اگر برنامه شما دستگاههایی را هدف قرار میدهد که از Google Play استفاده نمیکنند، به GPU با Task Library و بخش مستقل 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 delegate را برای کلاس مدل 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() });
از 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 delegate را برای کلاس مدل 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);