ইন্টারপ্রেটার API সহ GPU ত্বরণ প্রতিনিধি

আপনার মেশিন লার্নিং (ML) মডেলগুলি চালানোর জন্য গ্রাফিক্স প্রসেসিং ইউনিট (GPUs) ব্যবহার করা আপনার ML-সক্ষম অ্যাপ্লিকেশনগুলির কর্মক্ষমতা এবং ব্যবহারকারীর অভিজ্ঞতাকে নাটকীয়ভাবে উন্নত করতে পারে। অ্যান্ড্রয়েড ডিভাইসে, আপনি সক্ষম করতে পারেন

প্রতিনিধি এবং নিম্নলিখিত APIগুলির মধ্যে একটি:

  • ইন্টারপ্রেটার API - এই গাইড
  • টাস্ক লাইব্রেরি API - গাইড
  • নেটিভ (C/C++) API - গাইড

ইন্টারপ্রেটার এপিআই ব্যবহার করে অ্যান্ড্রয়েড অ্যাপে টেনসরফ্লো লাইট মডেলের জন্য কীভাবে GPU ত্বরণ সক্ষম করবেন এই পৃষ্ঠাটি বর্ণনা করে। TensorFlow Lite-এর জন্য GPU প্রতিনিধি ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, সেরা অনুশীলন এবং উন্নত কৌশলগুলি সহ, GPU প্রতিনিধি পৃষ্ঠাটি দেখুন।

Google Play পরিষেবাগুলির সাথে TensorFlow Lite সহ GPU ব্যবহার করুন৷

TensorFlow Lite Interpreter API একটি মেশিন লার্নিং অ্যাপ্লিকেশন তৈরির জন্য সাধারণ উদ্দেশ্য API-এর একটি সেট প্রদান করে। এই বিভাগটি বর্ণনা করে যে কীভাবে Google Play পরিষেবাগুলির সাথে TensorFlow Lite-এর সাথে এই APIগুলির সাথে GPU এক্সিলারেটর প্রতিনিধি ব্যবহার করবেন৷

Google Play পরিষেবার সাথে TensorFlow Lite হল Android-এ TensorFlow Lite ব্যবহার করার প্রস্তাবিত পথ। যদি আপনার অ্যাপ্লিকেশানটি এমন ডিভাইসগুলিকে লক্ষ্য করে যা Google Play চালাচ্ছে না, তাহলে GPU-এর সাথে ইন্টারপ্রেটার API এবং স্বতন্ত্র TensorFlow Lite বিভাগটি দেখুন।

প্রকল্প নির্ভরতা যোগ করুন

GPU প্রতিনিধিতে অ্যাক্সেস সক্ষম করতে, আপনার অ্যাপের build.gradle ফাইলে com.google.android.gms:play-services-tflite-gpu যোগ করুন:

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

GPU ত্বরণ সক্ষম করুন

তারপর GPU সমর্থন সহ Google Play পরিষেবাগুলির সাথে TensorFlow Lite শুরু করুন:

কোটলিন

    val useGpuTask = TfLiteGpu.isGpuDelegateAvailable(context)

    val interpreterTask = useGpuTask.continueWith { useGpuTask ->
      TfLite.initialize(context,
          TfLiteInitializationOptions.builder()
          .setEnableGpuDelegateSupport(useGpuTask.result)
          .build())
      }
      

জাভা

    Task useGpuTask = TfLiteGpu.isGpuDelegateAvailable(context);

    Task interpreterOptionsTask = useGpuTask.continueWith({ task ->
      TfLite.initialize(context,
      TfLiteInitializationOptions.builder()
        .setEnableGpuDelegateSupport(true)
        .build());
    });
      

আপনি অবশেষে InterpreterApi.Options মাধ্যমে একটি GpuDelegateFactory পাস করে ইন্টারপ্রেটারকে আরম্ভ করতে পারেন:

কোটলিন


    val options = InterpreterApi.Options()
      .setRuntime(TfLiteRuntime.FROM_SYSTEM_ONLY)
      .addDelegateFactory(GpuDelegateFactory())

    val interpreter = InterpreterApi(model, options)

    // Run inference
    writeToInput(input)
    interpreter.run(input, output)
    readFromOutput(output)
      

জাভা


    Options options = InterpreterApi.Options()
      .setRuntime(TfLiteRuntime.FROM_SYSTEM_ONLY)
      .addDelegateFactory(new GpuDelegateFactory());

    Interpreter interpreter = new InterpreterApi(model, options);

    // Run inference
    writeToInput(input);
    interpreter.run(input, output);
    readFromOutput(output);
      

জিপিইউ প্রতিনিধি অ্যান্ড্রয়েড স্টুডিওতে এমএল মডেল বাইন্ডিংয়ের সাথেও ব্যবহার করা যেতে পারে। আরও তথ্যের জন্য, মেটাডেটা ব্যবহার করে মডেল ইন্টারফেস তৈরি করুন দেখুন।

স্বতন্ত্র TensorFlow Lite সহ GPU ব্যবহার করুন

যদি আপনার অ্যাপ্লিকেশনটি এমন ডিভাইসগুলিকে লক্ষ্য করে যা Google Play চালাচ্ছে না, তাহলে আপনার অ্যাপ্লিকেশনে GPU প্রতিনিধিকে বান্ডেল করা এবং 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 ত্বরণ সক্ষম করুন

তারপর TfLiteDelegate দিয়ে GPU-তে TensorFlow Lite চালান। জাভাতে, আপনি Interpreter.Options মাধ্যমে GpuDelegate নির্দিষ্ট করতে পারেন।

কোটলিন

      import org.tensorflow.lite.Interpreter
      import org.tensorflow.lite.gpu.CompatibilityList
      import org.tensorflow.lite.gpu.GpuDelegate

      val compatList = CompatibilityList()

      val options = Interpreter.Options().apply{
          if(compatList.isDelegateSupportedOnThisDevice){
              // if the device has a supported GPU, add the GPU delegate
              val delegateOptions = compatList.bestOptionsForThisDevice
              this.addDelegate(GpuDelegate(delegateOptions))
          } else {
              // if the GPU is not supported, run on 4 threads
              this.setNumThreads(4)
          }
      }

      val interpreter = Interpreter(model, options)

      // Run inference
      writeToInput(input)
      interpreter.run(input, output)
      readFromOutput(output)
      

জাভা

      import org.tensorflow.lite.Interpreter;
      import org.tensorflow.lite.gpu.CompatibilityList;
      import org.tensorflow.lite.gpu.GpuDelegate;

      // Initialize interpreter with GPU delegate
      Interpreter.Options options = new Interpreter.Options();
      CompatibilityList compatList = CompatibilityList();

      if(compatList.isDelegateSupportedOnThisDevice()){
          // if the device has a supported GPU, add the GPU delegate
          GpuDelegate.Options delegateOptions = compatList.getBestOptionsForThisDevice();
          GpuDelegate gpuDelegate = new GpuDelegate(delegateOptions);
          options.addDelegate(gpuDelegate);
      } else {
          // if the GPU is not supported, run on 4 threads
          options.setNumThreads(4);
      }

      Interpreter interpreter = new Interpreter(model, options);

      // Run inference
      writeToInput(input);
      interpreter.run(input, output);
      readFromOutput(output);
      

কোয়ান্টাইজড মডেল

অ্যান্ড্রয়েড জিপিইউ প্রতিনিধি লাইব্রেরিগুলি ডিফল্টরূপে কোয়ান্টাইজড মডেলগুলিকে সমর্থন করে। জিপিইউ প্রতিনিধির সাথে কোয়ান্টাইজড মডেল ব্যবহার করার জন্য আপনাকে কোনো কোড পরিবর্তন করতে হবে না। নিম্নলিখিত বিভাগটি ব্যাখ্যা করে কিভাবে পরীক্ষা বা পরীক্ষামূলক উদ্দেশ্যে কোয়ান্টাইজড সমর্থন অক্ষম করা যায়।

কোয়ান্টাইজড মডেল সমর্থন অক্ষম করুন

নিম্নোক্ত কোডটি দেখায় কিভাবে কোয়ান্টাইজড মডেলের জন্য সমর্থন অক্ষম করা যায়

জাভা

GpuDelegate delegate = new GpuDelegate(new GpuDelegate.Options().setQuantizedModelsAllowed(false));

Interpreter.Options options = (new Interpreter.Options()).addDelegate(delegate);
      

GPU ত্বরণ সহ কোয়ান্টাইজড মডেল চালানোর বিষয়ে আরও তথ্যের জন্য, GPU প্রতিনিধি ওভারভিউ দেখুন।