La API de LiteRT CompiledModel está disponible en Kotlin y ofrece a los desarrolladores de Android una experiencia fluida y centrada en el acelerador con APIs de alto nivel. Para ver un ejemplo, consulta la app de Kotlin de segmentación de imágenes.
En la siguiente guía, se muestra la inferencia básica de la CPU de la API de CompiledModel de Kotlin. Consulta la guía sobre la aceleración por GPU y la aceleración por NPU para conocer las funciones de aceleración avanzadas.
Agrega un paquete de Maven
Agrega el paquete de Maven de LiteRT a tu proyecto para Android:
dependencies {
...
implementation `com.google.ai.edge.litert:litert:2.1.0`
}
Inferencia básica
Crear CompiledModel
Inicializa el tiempo de ejecución con un modelo y la aceleración por hardware que elijas:
val model =
CompiledModel.create(
context.assets,
"mymodel.tflite",
CompiledModel.Options(Accelerator.CPU),
env,
)
Cómo crear búferes de entrada y salida
Crea las estructuras de datos (búferes) necesarias para contener los datos de entrada que ingresarás en el modelo para la inferencia y los datos de salida que el modelo produce después de ejecutar la inferencia.
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
Si usas memoria de CPU, completa las entradas escribiendo datos directamente en el primer búfer de entrada.
inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })
Invoca el modelo
Proporciona los búferes de entrada y salida, y ejecuta el modelo.
model.run(inputBuffers, outputBuffers)
Recupera resultados
Recupera los resultados leyendo directamente el resultado del modelo de la memoria.
val outputFloatArray = outputBuffers[0].readFloat()
Usa TensorBuffer
LiteRT proporciona compatibilidad integrada para la interoperabilidad de búferes de E/S, con la API de Tensor Buffer (TensorBuffer) para controlar el flujo de datos hacia y desde el CompiledModel. La API de Tensor Buffer permite escribir (Write<T>()), leer (Read<T>()) y bloquear búferes.
Para obtener una vista más completa de cómo se implementa la API de Tensor Buffer, consulta el código fuente en TensorBuffer.kt.