Premiers pas avec LiteRT Next

Les API LiteRT Next ne sont pas compatibles avec les API LiteRT. Par conséquent, les applications qui utilisent LiteRT doivent migrer complètement vers LiteRT Next afin de pouvoir utiliser les fonctionnalités fournies par les nouvelles API. Les applications ne peuvent pas utiliser les API de l'interprète TF Lite et les API de modèle compilé de manière interchangeable.

LiteRT Next fournit des API pour Kotlin et C++. Les applications qui utilisent un SDK LiteRT dans d'autres langages doivent continuer à utiliser LiteRT.

Dépendances Android

Pour migrer une application Android à l'aide de LiteRT, remplacez la dépendance com.google.ai.edge.litert par com.google.ai.edge.litert:litert:2.0.0-alpha.

Avec LiteRT, l'accélérateur GPU est disponible en tant que délégué dans une bibliothèque distincte (com.google.ai.edge.litert:litert-gpu). Avec LiteRT Next, l'accélérateur GPU est inclus dans le package LiteRT Next. Pour en savoir plus, consultez la section GPU avec LiteRT Next.

Vous pouvez ajouter le package LiteRT Next à vos dépendances build.gradle:

dependencies {
  ...
  implementation `com.google.ai.edge.litert:litert:2.0.0-alpha`
}

Modifications de code

Les applications utilisant LiteRT devront remplacer le code qui utilise l'API TFLite Interpreter par le code qui utilise l'API Compiled Model. Vous trouverez ci-dessous les modifications majeures requises pour migrer vers LiteRT Next. Pour en savoir plus, consultez la documentation de référence de l'API LiteRT Next.

Modifications de code en C++

Pour migrer une application à l'aide de C++, remplacez les extraits de code clés suivants:

LiteRT (interpréteur TensorFlow Lite) LiteRT Next (CompiledModel)
Charger un modèle FlatBufferModel::BuildFromFile() InterpreterBuilder(...) Model::CreateFromFile("mymodel.tflite")
Remarque: Aucune étape de compilation distincte
Initialiser l'environnement d'exécution builder(&interpreter), interpreter->AllocateTensors() CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu)
Remarque: Aucune étape d'allocation manuelle de mémoire
Utiliser des accélérateurs interpreter->ModifyGraphWithDelegate(...) CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu)
Exécuter un modèle interpreter->Invoke() compiled_model->Run(inputs, outputs)

Modifications de code en Kotlin

Pour migrer une application à l'aide de Kotlin, procédez comme suit:

Configurer le modèle et l'environnement d'exécution

Avec LiteRT, vous chargez un modèle, configurez l'accélération et initialisez l'environnement d'exécution en plusieurs étapes:

// Load the model
val modelBuffer: MappedByteBuffer =
  FileUtil.loadMappedFile(appContext, "model.tflite")

// Initialize runtime
val options = Interpreter.Options()
val interpreter = Interpreter(modelBuffer, options)
interpreter.allocateTensors()

// Use accelerators
aval gpuDelegate = GpuDelegate()
options.addDelegate(gpuDelegate)

Avec LiteRT Next, vous chargez le modèle, spécifiez l'accélération et initialisez l'environnement d'exécution en même temps:

val model =
CompiledModel.create(
  context.assets,
  "model.tflite",
  CompiledModel.Options(Accelerator.GPU)
)

Exécuter une inférence

Pour exécuter le modèle avec LiteRT:

val input = FloatBuffer.allocate(data_size)
val output = FloatBuffer.allocate(data_size)
interpreter.run(input, output)

Pour exécuter le modèle avec LiteRT Next:

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

Autres bibliothèques

Les API LiteRT Next ne sont disponibles qu'en Kotlin et en C++. Les applications qui utilisent les SDK LiteRT dans d'autres langages ne peuvent pas migrer vers LiteRT Next.

Les applications qui utilisent LiteRT dans l'environnement d'exécution des services Play ne peuvent pas migrer vers LiteRT Next et doivent continuer à utiliser l'environnement d'exécution play-services-tflite. Les bibliothèques Task Library et Model Maker ne peuvent pas migrer vers LiteRT Next et doivent continuer à utiliser les API TensorFlow Lite.