API Kotlin LiteRT CompiledModel

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.