टास्क लाइब्रेरी के साथ जीपीयू त्वरण प्रतिनिधि

अपने मशीन लर्निंग (एमएल) मॉडल को चलाने के लिए ग्राफिक्स प्रोसेसिंग यूनिट (जीपीयू) का उपयोग करने से आपके एमएल-सक्षम अनुप्रयोगों के प्रदर्शन और उपयोगकर्ता अनुभव में नाटकीय रूप से सुधार हो सकता है। एंड्रॉइड डिवाइस पर, आप एक प्रतिनिधि और निम्नलिखित एपीआई में से एक का उपयोग करके अपने मॉडल के जीपीयू-त्वरित निष्पादन को सक्षम कर सकते हैं:

  • दुभाषिया एपीआई - गाइड
  • टास्क लाइब्रेरी एपीआई - यह गाइड
  • नेटिव (सी/सी++) एपीआई - यह गाइड

यह पृष्ठ बताता है कि टास्क लाइब्रेरी का उपयोग करके एंड्रॉइड ऐप्स में टेन्सरफ्लो लाइट मॉडल के लिए जीपीयू त्वरण को कैसे सक्षम किया जाए। सर्वोत्तम प्रथाओं और उन्नत तकनीकों सहित, TensorFlow Lite के लिए GPU प्रतिनिधि के बारे में अधिक जानकारी के लिए, GPU प्रतिनिधि पृष्ठ देखें।

Google Play सेवाओं के साथ TensorFlow Lite के साथ GPU का उपयोग करें

TensorFlow लाइट टास्क लाइब्रेरी मशीन लर्निंग अनुप्रयोगों के निर्माण के लिए कार्य-विशिष्ट एपीआई का एक सेट प्रदान करती है। यह अनुभाग बताता है कि Google Play सेवाओं के साथ TensorFlow Lite का उपयोग करके इन API के साथ GPU त्वरक प्रतिनिधि का उपयोग कैसे करें।

Google Play सेवाओं के साथ TensorFlow Lite Android पर TensorFlow Lite का उपयोग करने के लिए अनुशंसित पथ है। यदि आपका एप्लिकेशन Google Play नहीं चलाने वाले उपकरणों को लक्षित कर रहा है, तो टास्क लाइब्रेरी और स्टैंडअलोन TensorFlow Lite अनुभाग के साथ GPU देखें।

प्रोजेक्ट निर्भरताएँ जोड़ें

Google Play सेवाओं का उपयोग करके TensorFlow Lite टास्क लाइब्रेरी के साथ GPU प्रतिनिधि तक पहुंच सक्षम करने के लिए, अपने ऐप की build.gradle फ़ाइल की निर्भरता में com.google.android.gms:play-services-tflite-gpu जोड़ें:

dependencies {
  ...
  implementation 'com.google.android.gms:play-services-tflite-gpu:16.0.0'
}

GPU त्वरण सक्षम करें

फिर, एसिंक्रोनस रूप से सत्यापित करें कि TfLiteGpu क्लास का उपयोग करके डिवाइस के लिए GPU प्रतिनिधि उपलब्ध है और BaseOptions क्लास के साथ अपने टास्क एपीआई मॉडल क्लास के लिए GPU प्रतिनिधि विकल्प को सक्षम करें। उदाहरण के लिए, आप ObjectDetector में GPU सेट कर सकते हैं जैसा कि निम्नलिखित कोड उदाहरणों में दिखाया गया है:

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()
        }
      

जावा

      Task useGpuTask = 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 के साथ GPU का उपयोग करें

यदि आपका एप्लिकेशन उन डिवाइसों को लक्षित करता है जो Google Play नहीं चला रहे हैं, तो आपके एप्लिकेशन में GPU प्रतिनिधि को बंडल करना और इसे TensorFlow Lite के स्टैंडअलोन संस्करण के साथ उपयोग करना संभव है।

प्रोजेक्ट निर्भरताएँ जोड़ें

TensorFlow Lite के स्टैंडअलोन संस्करण का उपयोग करके TensorFlow Lite टास्क लाइब्रेरी के साथ GPU प्रतिनिधि तक पहुंच सक्षम करने के लिए, अपने ऐप की build.gradle फ़ाइल की निर्भरता में org.tensorflow:tensorflow-lite-gpu-delegate-plugin जोड़ें:

dependencies {
  ...
  implementation 'org.tensorflow:tensorflow-lite'
  implementation 'org.tensorflow:tensorflow-lite-gpu-delegate-plugin'
}

GPU त्वरण सक्षम करें

फिर BaseOptions क्लास के साथ अपने टास्क एपीआई मॉडल क्लास के लिए जीपीयू प्रतिनिधि विकल्प को सक्षम करें। उदाहरण के लिए, आप ObjectDetector में GPU सेट कर सकते हैं जैसा कि निम्नलिखित कोड उदाहरणों में दिखाया गया है:

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)
      

जावा

    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);