LiteRT Next API tidak kompatibel dengan LiteRT API, sehingga aplikasi yang menggunakan LiteRT harus dimigrasikan sepenuhnya ke LiteRT Next agar dapat menggunakan fitur dan kemampuan yang disediakan oleh API baru. Aplikasi tidak dapat menggunakan TF Lite Interpreter API dan Compiled Model API secara bergantian.
LiteRT Next menyediakan API untuk Kotlin dan C++. Aplikasi yang menggunakan LiteRT SDK dalam bahasa lain harus terus menggunakan LiteRT.
Dependensi Android
Untuk memigrasikan aplikasi Android menggunakan LiteRT, ganti dependensi dari
com.google.ai.edge.litert
ke com.google.ai.edge.litert:litert:2.0.0-alpha
.
Dengan LiteRT, akselerator GPU tersedia sebagai delegasi dalam library
terpisah (com.google.ai.edge.litert:litert-gpu
). Dengan LiteRT Next, akselerator GPU disertakan dalam paket LiteRT Next. Untuk mengetahui informasi
selengkapnya, lihat GPU dengan LiteRT Next.
Anda dapat menambahkan paket LiteRT Next ke dependensi build.gradle
:
dependencies {
...
implementation `com.google.ai.edge.litert:litert:2.0.0-alpha`
}
Perubahan kode
Aplikasi yang menggunakan LiteRT harus mengganti kode yang menggunakan TFLite Interpreter API untuk kode yang menggunakan Compiled Model API. Berikut ini menunjukkan perubahan utama yang diperlukan untuk melakukan migrasi ke LiteRT Next. Untuk mengetahui detail selengkapnya, lihat referensi LiteRT Next API.
Perubahan kode di C++
Untuk memigrasikan aplikasi menggunakan C++, ganti cuplikan kunci berikut:
LiteRT (TFLite Interpreter) | LiteRT Next (CompiledModel ) |
|
---|---|---|
Memuat Model | FlatBufferModel::BuildFromFile() InterpreterBuilder(...) |
Model::CreateFromFile("mymodel.tflite") Catatan: Tidak ada langkah builder terpisah |
Melakukan Inisialisasi Runtime | builder(&interpreter), interpreter->AllocateTensors() |
CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu) Catatan: Tidak ada langkah alokasi memori manual |
Menggunakan Akselerator | interpreter->ModifyGraphWithDelegate(...) |
CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu) |
Menjalankan Model | interpreter->Invoke() |
compiled_model->Run(inputs, outputs) |
Perubahan kode di Kotlin
Untuk memigrasikan aplikasi menggunakan Kotlin, ikuti langkah-langkah utama berikut:
Menyiapkan model dan runtime
Dengan LiteRT, Anda memuat model, menyiapkan akselerasi, dan melakukan inisialisasi runtime dalam langkah yang berbeda:
// 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)
Dengan LiteRT Next, Anda memuat model, menentukan akselerasi, dan melakukan inisialisasi runtime secara bersamaan:
val model =
CompiledModel.create(
context.assets,
"model.tflite",
CompiledModel.Options(Accelerator.GPU)
)
Menjalankan inferensi
Untuk menjalankan model dengan LiteRT:
val input = FloatBuffer.allocate(data_size)
val output = FloatBuffer.allocate(data_size)
interpreter.run(input, output)
Untuk menjalankan model dengan LiteRT Next:
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
model.run(inputBuffers, outputBuffers)
Perpustakaan lainnya
LiteRT Next API hanya tersedia dalam Kotlin dan C++. Aplikasi yang menggunakan LiteRT SDK dalam bahasa lain tidak dapat bermigrasi ke LiteRT Next.
Aplikasi yang menggunakan LiteRT di runtime Layanan Play tidak dapat bermigrasi ke
LiteRT Next, dan harus terus menggunakan runtime
play-services-tflite
. Library Task Library dan Model Maker tidak dapat dimigrasikan ke LiteRT
Next, dan harus terus menggunakan TensorFlow Lite API.