LiteRT CompiledModel Kotlin API

LiteRT CompiledModel API 以 Kotlin 语言提供,可为 Android 开发者提供无缝的加速器优先体验,并提供高级 API。如需查看示例,请参阅图片分割 Kotlin 应用

以下指南展示了 CompiledModel Kotlin API 的基本 CPU 推理。如需了解高级加速功能,请参阅有关 GPU 加速NPU 加速的指南。

添加 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()

如果您使用的是 CPU 内存,请通过将数据直接写入第一个输入缓冲区来填充输入。

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

调用模型

提供输入和输出缓冲区,运行模型。

model.run(inputBuffers, outputBuffers)

检索输出

通过直接从内存中读取模型输出来检索输出。

val outputFloatArray = outputBuffers[0].readFloat()

使用 TensorBuffer

LiteRT 使用 Tensor Buffer API (TensorBuffer) 处理进出 CompiledModel 的数据流,从而为 I/O 缓冲区互操作性提供内置支持。Tensor Buffer API 提供写入 (Write<T>())、读取 (Read<T>()) 和锁定缓冲区的功能。

如需更全面地了解 Tensor Buffer API 的实现方式,请参阅 TensorBuffer.kt 中的源代码。