API Kotlin LiteRT CompiledModel

L'API LiteRT CompiledModel est disponible en Kotlin, ce qui offre aux développeurs Android une expérience fluide et axée sur les accélérateurs avec des API de haut niveau. Pour obtenir un exemple, consultez l'application Kotlin de segmentation d'images.

Le guide suivant présente l'inférence de processeur de base de l'API Kotlin CompiledModel. Consultez les guides sur l'accélération GPU et l'accélération NPU pour découvrir les fonctionnalités d'accélération avancées.

Ajouter un package Maven

Ajoutez le package Maven LiteRT à votre projet Android :

dependencies {
  ...
  implementation `com.google.ai.edge.litert:litert:2.1.0`
}

Inférence de base

Créer CompiledModel

Initialisez le runtime avec un modèle et l'accélération matérielle de votre choix :

val  model =
  CompiledModel.create(
    context.assets,
    "mymodel.tflite",
    CompiledModel.Options(Accelerator.CPU),
    env,
  )

Créer des tampons d'entrée et de sortie

Créez les structures de données (tampons) nécessaires pour contenir les données d'entrée que vous fournirez au modèle pour l'inférence, ainsi que les données de sortie que le modèle produira après l'exécution de l'inférence.

val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()

Si vous utilisez la mémoire du processeur, remplissez les entrées en écrivant directement les données dans le premier tampon d'entrée.

inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })

Appeler le modèle

Fournissez les tampons d'entrée et de sortie, puis exécutez le modèle.

model.run(inputBuffers, outputBuffers)

Récupérer les sorties

Récupérer les sorties en lisant directement la sortie du modèle à partir de la mémoire.

val outputFloatArray = outputBuffers[0].readFloat()

Utiliser TensorBuffer

LiteRT offre une compatibilité intégrée pour l'interopérabilité des tampons d'E/S, en utilisant l'API Tensor Buffer (TensorBuffer) pour gérer le flux de données entrant et sortant du CompiledModel. L'API Tensor Buffer permet d'écrire (Write<T>()) et de lire (Read<T>()) des tampons, et de les verrouiller.

Pour obtenir une vue plus complète de l'implémentation de l'API Tensor Buffer, consultez le code source sur TensorBuffer.kt.