L'API LiteRT CompiledModel è disponibile in Kotlin e offre agli sviluppatori Android
un'esperienza semplice e incentrata sull'acceleratore con API di alto livello. Per un
esempio, vedi l'app Kotlin per la segmentazione delle immagini.
La seguente guida mostra l'inferenza della CPU di base dell'API CompiledModel Kotlin. Consulta la guida sull'accelerazione GPU e sull'accelerazione NPU per
funzionalità di accelerazione avanzate.
Aggiungi pacchetto Maven
Aggiungi il pacchetto Maven LiteRT al tuo progetto Android:
dependencies {
...
implementation `com.google.ai.edge.litert:litert:2.1.0`
}
Inferenza di base
Crea CompiledModel
Inizializza il runtime con un modello e l'accelerazione hardware che preferisci:
val model =
CompiledModel.create(
context.assets,
"mymodel.tflite",
CompiledModel.Options(Accelerator.CPU),
env,
)
Creare buffer di input e output
Crea le strutture di dati (buffer) necessarie per contenere i dati di input che inserirai nel modello per l'inferenza e i dati di output che il modello produce dopo l'esecuzione dell'inferenza.
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
Se utilizzi la memoria della CPU, compila gli input scrivendo i dati direttamente nel primo buffer di input.
inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })
Richiamare il modello
Fornisci i buffer di input e output ed esegui il modello.
model.run(inputBuffers, outputBuffers)
Recuperare gli output
Recupera gli output leggendo direttamente l'output del modello dalla memoria.
val outputFloatArray = outputBuffers[0].readFloat()
Utilizza TensorBuffer
LiteRT fornisce il supporto integrato per l'interoperabilità dei buffer I/O, utilizzando l'API Tensor Buffer (TensorBuffer) per gestire il flusso di dati in entrata e in uscita dal CompiledModel. L'API Tensor Buffer consente di scrivere
(Write<T>()) e leggere (Read<T>()) e bloccare i buffer.
Per una visione più completa di come viene implementata l'API Tensor Buffer, consulta il codice sorgente all'indirizzo TensorBuffer.kt.