অ্যান্ড্রয়েড ডেভেলপমেন্টের জন্য নিম্নলিখিত LiterRT রানটাইম API গুলি উপলব্ধ:
-
CompiledModelAPI: উচ্চ-কার্যক্ষমতাসম্পন্ন অনুমানের জন্য আধুনিক মান, CPU/GPU/NPU জুড়ে হার্ডওয়্যার ত্বরণকে সহজতর করে। CompiledModel API কেন বেছে নেবেন সে সম্পর্কে আরও জানুন। -
Interpreterএপিআই: মৌলিক অনুমান এপিআই, যা পশ্চাদমুখী সামঞ্জস্যের জন্য রক্ষণাবেক্ষণ করা হয়।
CompiledModel API দিয়ে শুরু করুন
ক্লাসিক্যাল এমএল মডেলের জন্য , নিম্নলিখিত ডেমো অ্যাপগুলি দেখুন।
- চিত্র বিভাজন কোটলিন অ্যাপ : CPU/GPU/NPU অনুমান।
- চিত্র বিভাজন C++ অ্যাপ : অ্যাসিঙ্ক এক্সিকিউশন সহ CPU/GPU/NPU অনুমান।
GenAI মডেলের জন্য , নিম্নলিখিত ডেমো অ্যাপগুলি দেখুন:
- জেমা শব্দার্থিক মিল এম্বেডিং সি++ অ্যাপ : সিপিইউ/জিপিইউ/এনপিইউ অনুমান।
সমর্থিত অ্যান্ড্রয়েড সংস্করণ এবং API গুলি
| LiterRT সংস্করণ | অবস্থা | সমর্থিত API | ন্যূনতম SDK স্তর | ন্যূনতম NDK সংস্করণ (যদি ব্যবহৃত হয়) | মুক্তির তারিখ |
|---|---|---|---|---|---|
v2.1.0 ⭐ | ✅ সর্বশেষ | CompiledModelInterpreter (শুধুমাত্র CPU) | 23 (অ্যান্ড্রয়েড ৬ মার্শম্যালো) | r26a | এখনও মুক্তি পায়নি |
v2.0.3 ⭐ | ⚠️ অপ্রচলিত | CompiledModel | 26 (অ্যান্ড্রয়েড ৮ ওরিও) | r26a | ২০২৫-১১-০৮ |
v1.4.1 ⭐ | ✅ সর্বশেষ | Interpreter | 21 (অ্যান্ড্রয়েড ৫ ললিপপ) | r26a | ২০২৫-১১-০৭ |
v1.4.0 ⭐ | ⚠️ অপ্রচলিত | Interpreter | 26 (অ্যান্ড্রয়েড ৮ ওরিও) | r26a | ২০২৫-০৬-২৫ |
v1.3.0 ⭐ | ⚠️ অপ্রচলিত | Interpreter | 21 (অ্যান্ড্রয়েড ৫ ললিপপ) | r26a | ২০২৫-০৫-১৯ |
v1.2.0 ⭐ | ⚠️ অপ্রচলিত | Interpreter | 21 (অ্যান্ড্রয়েড ৫ ললিপপ) | r26a | ২০২৫-০৩-১৩ |
গুরুত্বপূর্ণ: সর্বশেষ বৈশিষ্ট্য এবং নিরাপত্তা আপডেটের সাথে সামঞ্জস্য নিশ্চিত করতে আপনার নির্ভরতাগুলি আপ টু ডেট রাখুন।
CompiledModel API দিয়ে কুইকস্টার্ট করুন
কম্পাইলড মডেল এপিআই দিয়ে ইনফারেন্স চালানোর ক্ষেত্রে নিম্নলিখিত গুরুত্বপূর্ণ পদক্ষেপগুলি অন্তর্ভুক্ত থাকে:
- একটি সামঞ্জস্যপূর্ণ মডেল লোড করুন।
- ইনপুট এবং আউটপুট টেনসর বাফারগুলি বরাদ্দ করুন।
- সংকলিত মডেলটি আহ্বান করুন।
- একটি আউটপুট বাফারে অনুমানগুলি পড়ুন।
নিম্নলিখিত কোড স্নিপেটগুলি কোটলিন এবং সি++-এ সম্পূর্ণ প্রক্রিয়াটির একটি মৌলিক বাস্তবায়ন দেখায়।
কোটলিন
// Load model and initialize runtime
val compiledModel = CompiledModel.create(
"/path/to/mymodel.tflite",
CompiledModel.Options(Accelerator.CPU))
// Preallocate input/output buffers
val inputBuffers = compiledModel.createInputBuffers()
val outputBuffers = compiledModel.createOutputBuffers()
// Fill the input buffer
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)
// Invoke
compiledModel.run(inputBuffers, outputBuffers)
// Read the output
val output = outputBuffers.get(0).readFloat()
সি++
// Load model and initialize runtime
LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
auto compiled_model,
CompiledModel::Create(env, "/path/to/mymodel.tflite", options));
// Preallocate input/output buffers
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_buffers,compiled_model.CreateOutputBuffers(signature_index));
// Fill the input buffer
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));
// Invoke
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index, input_buffers, output_buffers));
// Read the output
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));