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.