APIهای زمان اجرای LiteRT زیر برای توسعه اندروید در دسترس هستند:
- رابط برنامهنویسی
CompiledModelAPI): استاندارد مدرن برای استنتاج با کارایی بالا ، که شتابدهی سختافزاری را در سراسر CPU/GPU/NPU سادهسازی میکند. درباره دلیل انتخاب رابط برنامهنویسی کاربردی کامپایلشدهی مدل بیشتر بدانید. - رابط برنامهنویسی
Interpreter: رابط برنامهنویسی استنتاج پایه، که برای سازگاری با نسخههای قبلی نگهداری میشود.
شروع کار با CompiledModel API
برای مدلهای کلاسیک یادگیری ماشین ، به برنامههای نمایشی زیر مراجعه کنید.
- قطعهبندی تصویر در کاتلین : استنتاج CPU/GPU/NPU
- قطعهبندی تصویر در برنامه ++C : استنتاج CPU/GPU/NPU با اجرای ناهمگام
برای مدلهای GenAI ، به برنامههای نمایشی زیر مراجعه کنید:
- شباهت معنایی EmbeddingGemma در برنامه ++C : استنتاج CPU/GPU/NPU.
نسخهها و APIهای اندروید پشتیبانیشده
| نسخه LiteRT | وضعیت | 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));