আপনার মেশিন লার্নিং (ML) মডেলগুলি চালানোর জন্য গ্রাফিক্স প্রসেসিং ইউনিট (GPUs) ব্যবহার করা আপনার ML-সক্ষম অ্যাপ্লিকেশনগুলির কর্মক্ষমতা এবং ব্যবহারকারীর অভিজ্ঞতাকে নাটকীয়ভাবে উন্নত করতে পারে। অ্যান্ড্রয়েড ডিভাইসে, আপনি একটি প্রতিনিধি এবং নিম্নলিখিত 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 চালাচ্ছে না, তাহলে ইন্টারপ্রেটার API সহ GPU এবং স্বতন্ত্র TensorFlow Lite বিভাগটি দেখুন৷
প্রকল্প নির্ভরতা যোগ করুন (.toml সংস্করণ ক্যাটালগ সহ)
- আপনার প্রকল্পের
libs.versions.toml
ফাইল আপডেট করুন
[libraries]
...
tflite-gpu = { module = "org.tensorflow:tensorflow-lite-gpu", version = "2.X.Y" }
tflite-gpu-api = { module = "org.tensorflow:tensorflow-lite-gpu-api", version = "2.X.Y" }
...
- অ্যাপের
build.gradle.kts
এ প্রকল্প নির্ভরতা যোগ করুন
dependencies {
...
implementation(libraries.tflite.gpu)
implementation(libraries.tflite.gpu.api)
...
}
প্রকল্প নির্ভরতা যোগ করুন
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<boolean> useGpuTask = TfLiteGpu.isGpuDelegateAvailable(context); Task<Options> 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 প্রতিনিধি ওভারভিউ দেখুন।