Filloni me LiteRT Next

API-të LiteRT Next nuk janë të pajtueshme me API-të LiteRT, kështu që aplikacionet që përdorin LiteRT duhet të migrojnë plotësisht në LiteRT Next në mënyrë që të përdorin veçoritë dhe aftësitë e ofruara nga API-të e reja. Aplikacionet nuk mund të përdorin API-të e interpretimit TF Lite dhe API-të e modelit të përpiluar në mënyrë të ndërsjellë.

LiteRT Next ofron API për Kotlin dhe C++. Aplikacionet që përdorin një LiteRT SDK në gjuhë të tjera duhet të vazhdojnë të përdorin LiteRT.

Varësitë e Android

Për të migruar një aplikacion Android duke përdorur LiteRT, zëvendësoni varësinë nga com.google.ai.edge.litertcom.google.ai.edge.litert:litert:2.0.0-alpha .

Me LiteRT, përshpejtuesi GPU është i disponueshëm si delegat në një bibliotekë të veçantë ( com.google.ai.edge.litert:litert-gpu ). Me LiteRT Next, përshpejtuesi GPU përfshihet në paketën LiteRT Next. Për më shumë informacion, shihni GPU me LiteRT Next .

Ju mund të shtoni paketën LiteRT Next në varësitë tuaja build.gradle :

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

Ndryshimet e kodit

Aplikacionet që përdorin LiteRT do të duhet të zëvendësojnë kodin që përdor TFLite Interpreter API për kodin duke përdorur API-në e Modelit të Përpiluar. Më poshtë tregon ndryshimet kryesore të nevojshme për të migruar në LiteRT Next. Për më shumë detaje, shihni referencën LiteRT Next API .

Kodi ndryshon në C++

Për të migruar një aplikacion duke përdorur C++, zëvendësoni fragmentet kryesore të mëposhtme:

LiteRT (Përkthyes TFLite) LiteRT Next ( CompiledModel )
Ngarko një model FlatBufferModel::BuildFromFile() InterpreterBuilder(...) Model::CreateFromFile("mymodel.tflite")
Shënim: Nuk ka hap të veçantë ndërtues
Inicializoni Runtime builder(&interpreter), interpreter->AllocateTensors() CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu)
Shënim: Nuk ka hap manual të alokimit të kujtesës
Përdorni Përshpejtuesit interpreter->ModifyGraphWithDelegate(...) CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu)
Drejtoni një model interpreter->Invoke() compiled_model->Run(inputs, outputs)

Ndryshimet e kodit në Kotlin

Për të migruar një aplikacion duke përdorur Kotlin, ndiqni hapat kryesorë të mëposhtëm:

Vendosni modelin dhe kohën e funksionimit

Me LiteRT, ju ngarkoni një model, konfiguroni përshpejtimin dhe nisni kohën e ekzekutimit në hapa të ndryshëm:

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

Me LiteRT Next, ju ngarkoni modelin, specifikoni përshpejtimin dhe inicializoni kohën e funksionimit në të njëjtën kohë:

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

Ekzekutoni konkluzionet

Për të ekzekutuar modelin me LiteRT:

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

Për të ekzekutuar modelin me LiteRT Next:

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

Biblioteka të tjera

API-të LiteRT Next janë të disponueshme vetëm në Kotlin dhe C++. Aplikacionet që përdorin LiteRT SDK në gjuhë të tjera nuk mund të migrojnë në LiteRT Next.

Aplikacionet që përdorin LiteRT në kohën e ekzekutimit të Shërbimeve të Play nuk mund të migrojnë në LiteRT Next dhe duhet të vazhdojnë të përdorin kohën e ekzekutimit të play-services-tflite . Bibliotekat e Task Library dhe Model Maker nuk mund të migrojnë në LiteRT Next dhe duhet të vazhdojnë të përdorin API-të TensorFlow Lite.