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.litert
në com.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.