LiteRT Compiled Model API, Kotlin'de kullanılabilir. Bu API, Android geliştiricilere üst düzey API'lerle sorunsuz ve hızlandırıcı öncelikli bir deneyim sunar.
Kotlin'de LiteRT uygulaması örneği için Kotlin ile görüntü segmentasyonu demosu bölümüne bakın.
Başlayın
LiteRT Compiled Model API'yi Android uygulamanıza eklemek için aşağıdaki adımları uygulayın.
Maven paketi ekleme
Derlenmiş Model API'si ile LiteRT bağımlılığını uygulamanıza ekleyin:
dependencies {
...
implementation `com.google.ai.edge.litert:litert:2.0.0-alpha`
}
Derlenmiş Modeli Oluşturma
CompiledModel API'yi kullanarak çalışma zamanını bir model ve donanım hızlandırma seçeneğinizle başlatın:
val model =
CompiledModel.create(
context.assets,
"mymodel.tflite",
CompiledModel.Options(Accelerator.CPU),
env,
)
Giriş ve Çıkış Arabellekleri Oluşturma
Çıkarım için modele besleyeceğiniz giriş verilerini ve modelin çıkarım çalıştırdıktan sonra ürettiği çıkış verilerini tutmak üzere gerekli veri yapılarını (arabellekler) oluşturun.
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
CPU belleği kullanıyorsanız girişleri doğrudan ilk giriş arabelleğine veri yazarak doldurun.
inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })
Modeli çağırma
Giriş ve çıkış arabelleklerini sağlayarak Derlenmiş Modeli çalıştırın.
model.run(inputBuffers, outputBuffers)
Çıkışları alma
Model çıkışını doğrudan bellekten okuyarak çıkışları alma.
val outputFloatArray = outputBuffers[0].readFloat()
Temel kavramlar ve bileşenler
LiteRT Kotlin Compiled Model API'lerinin temel kavramları ve bileşenleri hakkında bilgi edinmek için aşağıdaki bölümlere bakın.
Temel çıkarım (CPU)
Aşağıda, LiteRT Next ile çıkarım işleminin basitleştirilmiş ve kısaltılmış bir uygulaması yer almaktadır.
// Load model and initialize runtime
val model =
CompiledModel.create(
context.assets,
"mymodel.tflite"
)
// Preallocate input/output buffers
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
// Fill the first input
inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })
// Invoke
model.run(inputBuffers, outputBuffers)
// Read the output
val outputFloatArray = outputBuffers[0].readFloat()
// Clean up buffers and model
inputBuffers.forEach { it.close() }
outputBuffers.forEach { it.close() }
model.close()
Derlenmiş Model (CompiledModel)
Derlenmiş Model API'si (CompiledModel) bir modeli yüklemek, donanım hızlandırmayı uygulamak, çalışma zamanını başlatmak, giriş ve çıkış arabellekleri oluşturmak ve çıkarım çalıştırmaktan sorumludur.
Aşağıdaki basitleştirilmiş kod snippet'i, Compiled Model API'nin nasıl bir LiteRT modeli (.tflite) aldığını ve çıkarım çalıştırmaya hazır bir derlenmiş model oluşturduğunu gösterir.
val model =
CompiledModel.create(
context.assets,
"mymodel.tflite"
)
Aşağıdaki basitleştirilmiş kod snippet'inde, CompiledModel API'sinin nasıl giriş ve çıkış arabelleği aldığı ve derlenmiş modelle çıkarımlar yaptığı gösterilmektedir.
// Preallocate input/output buffers
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
// Fill the first input
inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })
// Invoke
model.run(inputBuffers, outputBuffers)
// Read the output
val outputFloatArray = outputBuffers[0].readFloat()
// Clean up buffers and model
inputBuffers.forEach { it.close() }
outputBuffers.forEach { it.close() }
model.close()
CompiledModel API'nin nasıl uygulandığına dair daha kapsamlı bir görünüm için Model.kt adresindeki kaynak koduna bakın.
Tensor arabelleği (TensorBuffer)
LiteRT, CompiledModel'ye veri akışını ve CompiledModel'den veri akışını işlemek için Tensor Buffer API'yi (TensorBuffer) kullanarak G/Ç arabellek birlikte çalışabilirliği için yerleşik destek sağlar. Tensor Buffer API, arabellekleri yazma (Write<T>()), okuma (Read<T>()) ve kilitleme olanağı sağlar.
Tensor Buffer API'nin nasıl uygulandığına dair daha kapsamlı bir görünüm için TensorBuffer.kt adresindeki kaynak koduna bakın.