การใช้หน่วยประมวลผลกราฟิก (GPU) เพื่อรันโมเดล Machine Learning (ML) ของคุณสามารถปรับปรุงประสิทธิภาพและประสบการณ์ผู้ใช้ของแอปพลิเคชันที่เปิดใช้งาน ML ได้อย่างมาก บนอุปกรณ์ Android คุณสามารถเปิดใช้งานการดำเนินการที่เร่งด้วย GPU สำหรับโมเดลของคุณโดยใช้ ผู้รับมอบสิทธิ์ และหนึ่งใน API ต่อไปนี้:
หน้านี้อธิบายวิธีเปิดใช้งานการเร่งความเร็ว GPU สำหรับรุ่น TensorFlow Lite ในแอป Android โดยใช้ไลบรารีงาน หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับตัวแทน GPU สำหรับ TensorFlow Lite รวมถึงแนวทางปฏิบัติที่ดีที่สุดและเทคนิคขั้นสูง โปรดดูที่หน้า ตัวแทน GPU
ใช้ GPU กับ TensorFlow Lite กับบริการ Google Play
ไลบรารีงาน TensorFlow Lite มอบชุด API เฉพาะงานสำหรับการสร้างแอปพลิเคชัน Machine Learning ส่วนนี้จะอธิบายวิธีใช้ตัวแทนตัวเร่งความเร็ว GPU กับ API เหล่านี้โดยใช้ TensorFlow Lite กับบริการ Google Play
TensorFlow Lite พร้อมบริการ Google Play เป็นเส้นทางที่แนะนำในการใช้ TensorFlow Lite บน Android หากแอปพลิเคชันของคุณกำหนดเป้าหมายอุปกรณ์ที่ไม่ได้ใช้ 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() }
ชวา
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)
ชวา
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);