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 中的源代码。