A API LiteRT CompiledModel está disponível em Kotlin, oferecendo aos desenvolvedores do Android uma experiência perfeita e com foco no acelerador com APIs de alto nível. Para um exemplo, consulte o app Kotlin de segmentação de imagens.
O guia a seguir mostra a inferência básica de CPU da API CompiledModel Kotlin. Consulte o guia sobre aceleração de GPU e aceleração de NPU para recursos avançados de aceleração.
Adicionar pacote Maven
Adicione o pacote do Maven LiteRT ao seu projeto Android:
dependencies {
...
implementation `com.google.ai.edge.litert:litert:2.1.0`
}
Criar CompiledModel
Inicialize o ambiente de execução com um modelo e a aceleração de hardware que você preferir:
val model =
CompiledModel.create(
context.assets,
"mymodel.tflite",
CompiledModel.Options(Accelerator.CPU),
env,
)
Criar buffers de entrada e saída
Crie as estruturas de dados (buffers) necessárias para armazenar os dados de entrada que você vai inserir no modelo para inferência e os dados de saída que o modelo produz após a execução da inferência.
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
Se você estiver usando a memória da CPU, preencha as entradas gravando dados diretamente no primeiro buffer de entrada.
inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })
Invocar o modelo
Forneça os buffers de entrada e saída e execute o modelo.
model.run(inputBuffers, outputBuffers)
Recuperar saídas
Recuperar saídas lendo diretamente a saída do modelo da memória.
val outputFloatArray = outputBuffers[0].readFloat()
Usar TensorBuffer
O LiteRT oferece suporte integrado à interoperabilidade de buffer de E/S usando a
API Tensor Buffer (TensorBuffer) para processar o fluxo de dados para dentro e para fora do
CompiledModel. A API Tensor Buffer permite gravar (Write<T>()) e ler (Read<T>()) e bloquear buffers.
Para uma visão mais completa de como a API Tensor Buffer é implementada, consulte o código-fonte em TensorBuffer.kt.