Core API
公共 API 位于 io.github.kmplitert.core。以下是共享代码常用的接口;平台底层绑定不应被视为稳定的跨平台抽象。
LiteRTCompiler
LiteRTCompiler(
filePath: String,
accelerator: LiteRTAccelerator = LiteRTAccelerator.CPU
)
| 方法 | 用途 |
|---|---|
suspend init() |
加载并准备模型。其他操作前调用。 |
suspend getInputTensorType(inputName) |
按名称查询输入的元素类型和布局。 |
suspend getOutputTensorType(outputName) |
按名称查询输出的元素类型和布局。 |
suspend getInputBufferRequirements(inputName) |
查询输入缓冲区需求。 |
suspend getOutputBufferRequirements(outputName) |
查询输出缓冲区需求。 |
suspend getInputBuffers(signatureIndex = 0) |
创建指定签名的输入缓冲区列表。 |
suspend getOutputBuffers(signatureIndex = 0) |
创建指定签名的输出缓冲区列表。 |
suspend run(inputs, outputs, signatureIndex = 0) |
使用指定的输入、输出缓冲区执行推理。 |
suspend close() |
释放编译器资源。关闭后不再使用实例。 |
filePath 在本地目标上是模型文件路径,在 Web 上通常是可访问的模型 URL。名称、顺序及签名由模型决定;平台能力列出了签名行为差异。
TFBuffer
TFBuffer 扩展 AutoCloseable。写入是普通函数,读取是挂起函数:
| 写入 | 读取 | Kotlin 数组 |
|---|---|---|
writeInt |
readInt |
IntArray |
writeFloat |
readFloat |
FloatArray |
writeInt8 |
readInt8 |
ByteArray |
writeBoolean |
readBoolean |
BooleanArray |
writeLong |
readLong |
LongArray |
调用方必须确保类型和长度符合模型。资源所有权见生命周期。
类型与枚举
| 类型 | 说明 |
|---|---|
LiteRTAccelerator |
CPU、GPU、NPU;实际能力依平台而定。 |
LiteRTTensorType |
elementType 和可为空的 layout。 |
LiteRTElementType |
LiteRT 元素类型及其原生值 value;fromNative(value) 在未知值时抛出异常。枚举不代表所有类型都有 TFBuffer 读写方法。 |
LiteRTLayout |
dimensions、strides、rank、hasStrides;calculateDefaultStrides 计算行主序元素步长。 |
LiteRTBufferRequirements |
supportedTypes、字节数 bufferSize 和 strides;步长单位注意事项见张量指南。 |
LiteRTTensorBufferType |
主机内存及各类平台缓冲区类型,type 是原生值;from(type) 用于转换。 |
更多示例见快速开始,可选预处理 API 见图像与音频处理流程,Web 专用初始化入口见 Web 初始化 API。