Для разработки под Android доступны следующие API среды выполнения LiteRT:
- API
CompiledModel: современный стандарт для высокопроизводительного вывода результатов, оптимизирующий аппаратное ускорение на ЦП/ГП/НПУ. Узнайте больше о том, почему стоит выбрать API CompiledModel . - API
Interpreter: базовый API вывода, поддерживаемый для обеспечения обратной совместимости.
Начните работу с API CompiledModel
Для ознакомления с классическими моделями машинного обучения см. следующие демонстрационные приложения.
- Приложение Kotlin для сегментации изображений : вывод данных на CPU/GPU/NPU.
- Приложение для сегментации изображений на C++ : вывод данных с использованием CPU/GPU/NPU с асинхронным выполнением.
Для ознакомления с моделями GenAI см. следующие демонстрационные приложения:
- Приложение EmbeddingGemma для определения семантического сходства на C++ : вывод данных с использованием CPU/GPU/NPU.
Поддерживаемые версии Android и API
| Версия LiteRT | Статус | Поддерживаемые API | Минимальный уровень SDK | Минимальная версия NDK (если используется) | Дата выпуска |
|---|---|---|---|---|---|
v2.1.0 ⭐ | ✅ Новейшие | CompiledModelInterpreter (только для ЦП) | 23 (Android 6 Marshmallow) | r26a | Ещё не выпущено |
v2.0.3 ⭐ | ⚠️ Устарело | CompiledModel | 26 (Android 8 Oreo) | r26a | 2025-11-08 |
v1.4.1 ⭐ | ✅ Новейшие | Interpreter | 21 (Android 5 Lollipop) | r26a | 2025-11-07 |
v1.4.0 ⭐ | ⚠️ устарело | Interpreter | 26 (Android 8 Oreo) | r26a | 2025-06-25 |
v1.3.0 ⭐ | ⚠️ устарело | Interpreter | 21 (Android 5 Lollipop) | r26a | 2025-05-19 |
v1.2.0 ⭐ | ⚠️ устарело | Interpreter | 21 (Android 5 Lollipop) | r26a | 2025-03-13 |
Важно: Поддерживайте актуальность зависимостей, чтобы обеспечить совместимость с последними функциями и обновлениями безопасности.
Быстрый старт с API CompiledModel
Выполнение вывода результатов с помощью API скомпилированной модели включает следующие ключевые шаги:
- Загрузите совместимую модель.
- Выделите буферы для входного и выходного тензоров.
- Вызовите скомпилированную модель.
- Считывайте полученные результаты в выходной буфер.
Приведенные ниже фрагменты кода демонстрируют базовую реализацию всего процесса на Kotlin и C++.
Котлин
// 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()
C++
// 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));