LiteRT CompiledModel Kotlin API

API LiteRT CompiledModel доступен в Kotlin, предоставляя разработчикам Android удобный интерфейс с приоритетом на ускоритель, основанный на высокоуровневых API. В качестве примера см. приложение Kotlin для сегментации изображений .

В этом руководстве показан базовый алгоритм выполнения операций на ЦП с использованием API CompiledModel Kotlin. Для получения информации о расширенных функциях ускорения см. руководство по ускорению на графическом процессоре и нейронном процессоре .

Добавить пакет Maven

Добавьте пакет LiteRT Maven в свой проект Android:

dependencies {
  ...
  implementation `com.google.ai.edge.litert:litert:2.1.0`
}

Базовый вывод

Создать CompiledModel

Инициализируйте среду выполнения, указав модель и выбранный вами аппаратный ускоритель:

val  model =
  CompiledModel.create(
    context.assets,
    "mymodel.tflite",
    CompiledModel.Options(Accelerator.CPU),
    env,
  )

Создание входных и выходных буферов

Создайте необходимые структуры данных (буферы) для хранения входных данных, которые вы будете подавать в модель для вывода результатов, и выходных данных, которые модель выдает после выполнения вывода.

val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()

Если вы используете память процессора, заполните входные буферы, записывая данные непосредственно в первый входной буфер.

inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })

Вызовите модель

Предоставив входные и выходные буферы, запустите модель.

model.run(inputBuffers, outputBuffers)

Получение результатов

Получение результатов осуществляется путем прямого считывания выходных данных модели из памяти.

val outputFloatArray = outputBuffers[0].readFloat()

Используйте TensorBuffer

LiteRT обеспечивает встроенную поддержку взаимодействия буферов ввода-вывода, используя API Tensor Buffer ( TensorBuffer ) для обработки потока данных в CompiledModel и из него. API Tensor Buffer предоставляет возможность записи ( Write<T>() ) и чтения ( Read<T>() ), а также блокировки буферов.

Более полное представление о реализации API Tensor Buffer можно найти в исходном коде по адресу TensorBuffer.kt .