Inizia a utilizzare LiteRT Next

Le API LiteRT Next non sono compatibili con le API LiteRT, pertanto le applicazioni che utilizzano LiteRT devono eseguire la migrazione completa a LiteRT Next per poter utilizzare le funzionalità e le capacità fornite dalle nuove API. Le applicazioni non possono utilizzare le API di interprete TF Lite e le API di modelli compilati in modo intercambiabile.

LiteRT Next fornisce API per Kotlin e C++. Le applicazioni che utilizzano un SDK LiteRT in altri linguaggi devono continuare a utilizzare LiteRT.

Dipendenze Android

Per eseguire la migrazione di un'applicazione Android utilizzando LiteRT, sostituisci la dipendenza da com.google.ai.edge.litert a com.google.ai.edge.litert:litert:2.0.0-alpha.

Con LiteRT, l'acceleratore GPU è disponibile come delegato in una biblioteca distinta (com.google.ai.edge.litert:litert-gpu). Con LiteRT Next, l'acceleratore GPU è incluso nel pacchetto LiteRT Next. Per ulteriori informazioni, consulta GPU con LiteRT Next.

Puoi aggiungere il pacchetto LiteRT Next alle dipendenze build.gradle:

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

Modifiche al codice

Le applicazioni che utilizzano LiteRT dovranno sostituire il codice che utilizza l'API Interprete TFLite con il codice che utilizza l'API Modello compilato. Di seguito sono riportate le modifiche principali necessarie per eseguire la migrazione a LiteRT Next. Per ulteriori dettagli, consulta il riferimento all'API LiteRT Next.

Modifiche al codice in C++

Per eseguire la migrazione di un'applicazione che utilizza C++, sostituisci i seguenti snippet chiave:

LiteRT (interprete TFLite) LiteRT Next (CompiledModel)
Caricare un modello FlatBufferModel::BuildFromFile() InterpreterBuilder(...) Model::CreateFromFile("mymodel.tflite")
Nota: nessun passaggio del generatore separato
Inizializza il runtime builder(&interpreter), interpreter->AllocateTensors() CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu)
Nota: nessun passaggio di allocazione della memoria manuale
Utilizzare gli acceleratori interpreter->ModifyGraphWithDelegate(...) CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu)
Eseguire un modello interpreter->Invoke() compiled_model->Run(inputs, outputs)

Modifiche al codice in Kotlin

Per eseguire la migrazione di un'applicazione che utilizza Kotlin, segui i seguenti passaggi chiave:

Configura il modello e il runtime

Con LiteRT, carichi un modello, configuri l'accelerazione e inizilizza il runtime in diversi passaggi:

// 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)

Con LiteRT Next, carichi il modello, specifichi l'accelerazione e inizializzi il runtime contemporaneamente:

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

Esegui l'inferenza

Per eseguire il modello con LiteRT:

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

Per eseguire il modello con LiteRT Next:

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

Altre biblioteche

Le API LiteRT Next sono disponibili solo in Kotlin e C++. Le applicazioni che utilizzano gli SDK LiteRT in altri linguaggi non possono eseguire la migrazione a LiteRT Next.

Le applicazioni che utilizzano LiteRT nel runtime di Play Services non possono eseguire la migrazione a LiteRT Next e devono continuare a utilizzare il runtime play-services-tflite. Le librerie Task Library e Model Maker non possono eseguire la migrazione a LiteRT Next e devono continuare a utilizzare le API TensorFlow Lite.