LiteRT CompiledModel Kotlin API

LiteRT CompiledModel API 提供 Kotlin 版本,可透過高階 API 為 Android 開發人員提供順暢無礙的加速器優先體驗。如需範例,請參閱「圖像分割 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 內建支援 I/O 緩衝區互通性,可使用 Tensor Buffer API (TensorBuffer) 處理 CompiledModel 的資料流入和流出。Tensor Buffer API 可用於寫入 (Write<T>())、讀取 (Read<T>()) 及鎖定緩衝區。

如要更全面地瞭解 Tensor Buffer API 的實作方式,請參閱 TensorBuffer.kt 的原始碼。