API LiteRT Next несовместимы с API LiteRT, поэтому приложения, использующие LiteRT, должны полностью перейти на LiteRT Next, чтобы использовать функции и возможности, предоставляемые новыми API. Приложения не могут использовать API TF Lite Interpreter и API Compiled Model взаимозаменяемо.
LiteRT Next предоставляет API для Kotlin и C++. Приложения, использующие LiteRT SDK на других языках, должны продолжать использовать LiteRT.
Зависимости Android
Чтобы перенести приложение Android с помощью LiteRT, замените зависимость с com.google.ai.edge.litert
на com.google.ai.edge.litert:litert:2.0.0-alpha
.
С LiteRT ускоритель GPU доступен как делегат в отдельной библиотеке ( com.google.ai.edge.litert:litert-gpu
). С LiteRT Next ускоритель GPU включен в пакет LiteRT Next. Для получения дополнительной информации см. GPU с LiteRT Next .
Вы можете добавить пакет LiteRT Next в зависимости build.gradle
:
dependencies {
...
implementation `com.google.ai.edge.litert:litert:2.0.0-alpha`
}
Изменения кода
Приложения, использующие LiteRT, должны будут заменить код, использующий API TFLite Interpreter, на код, использующий API Compiled Model. Ниже показаны основные изменения, необходимые для перехода на LiteRT Next. Более подробную информацию см. в справочнике по API LiteRT Next .
Изменения кода в C++
Чтобы перенести приложение с использованием C++, замените следующие ключевые фрагменты:
LiteRT (интерпретатор TFLite) | LiteRT Next ( CompiledModel ) | |
---|---|---|
Загрузить модель | FlatBufferModel::BuildFromFile() InterpreterBuilder(...) | Model::CreateFromFile("mymodel.tflite") Примечание: отдельного этапа сборки нет. |
Инициализировать среду выполнения | builder(&interpreter), interpreter->AllocateTensors() | CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu) Примечание: ручное выделение памяти не требуется. |
Используйте ускорители | interpreter->ModifyGraphWithDelegate(...) | CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu) |
Запустить модель | interpreter->Invoke() | compiled_model->Run(inputs, outputs) |
Изменения кода в Kotlin
Чтобы перенести приложение с использованием Kotlin, выполните следующие основные шаги:
Настройка модели и среды выполнения
С помощью LiteRT вы загружаете модель, настраиваете ускорение и инициализируете среду выполнения за несколько шагов:
// Load the model
val modelBuffer: MappedByteBuffer =
FileUtil.loadMappedFile(appContext, "model.tflite")
// Initialize runtime
val options = Interpreter.Options()
val interpreter = Interpreter(modelBuffer, options)
interpreter.allocateTensors()
// Use accelerators
aval gpuDelegate = GpuDelegate()
options.addDelegate(gpuDelegate)
С помощью LiteRT Next вы загружаете модель, указываете ускорение и инициализируете среду выполнения одновременно:
val model =
CompiledModel.create(
context.assets,
"model.tflite",
CompiledModel.Options(Accelerator.GPU)
)
Выполнить вывод
Чтобы запустить модель с помощью LiteRT:
val input = FloatBuffer.allocate(data_size)
val output = FloatBuffer.allocate(data_size)
interpreter.run(input, output)
Чтобы запустить модель с помощью LiteRT Далее:
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
model.run(inputBuffers, outputBuffers)
Другие библиотеки
API LiteRT Next доступны только в Kotlin и C++. Приложения, использующие LiteRT SDK на других языках, не могут быть перенесены на LiteRT Next.
Приложения, использующие LiteRT в среде выполнения Play Services, не могут мигрировать в LiteRT Next и должны продолжать использовать среду выполнения play-services-tflite
. Библиотеки Task Library и Model Maker не могут мигрировать в LiteRT Next и должны продолжать использовать API TensorFlow Lite.