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 的原始碼。