TensorFlow Lite, modelleri Android uygulamalarına entegre etmek için bir dizi araç sağlar. Bu sayfada Kotlin, Java ve C++ ile uygulama oluşturmada kullanılacak geliştirme araçlarının yanı sıra Android Studio'da TensorFlow Lite geliştirme desteği açıklanmaktadır.
Hızlı bir şekilde Android kodu yazmaya başlamak için Android için Hızlı Başlangıç sayfasına bakın
Kotlin ve Java ile derleme araçları
Aşağıdaki bölümlerde TensorFlow Lite için Kotlin ve Java dillerini kullanan geliştirme araçları açıklanmaktadır.
TensorFlow Lite Görev Kitaplığı
TensorFlow Lite Görev Kitaplığı, uygulama geliştiricilerinin TensorFlow Lite ile oluşturabileceği, göreve özel, güçlü ve kullanımı kolay bir dizi kitaplık içerir. Görüntü sınıflandırma, soru-cevap gibi popüler makine öğrenimi görevleri için optimize edilmiş kullanıma hazır model arayüzleri sağlar. Model arayüzleri, en iyi performansı ve kullanılabilirliği elde etmek amacıyla her görev için özel olarak tasarlanmıştır. Görev Kitaplığı platformlar arası çalışır ve Java ve C++'da desteklenir.
Görev Kitaplığını Android uygulamanızda kullanmak için sırasıyla Görev Görüşü kitaplığı , Görev Metni kitaplığı ve Görev Ses Kitaplığı için MavenCentral'daki AAR'yı kullanın.
Bunu build.gradle
bağımlılıklarınızda aşağıdaki gibi belirtebilirsiniz:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-task-vision:+'
implementation 'org.tensorflow:tensorflow-lite-task-text:+'
implementation 'org.tensorflow:tensorflow-lite-task-audio:+'
}
Gecelik anlık görüntüler kullanıyorsanız Sonatype anlık görüntü deposunu projenize eklediğinizden emin olun.
Daha fazla ayrıntı için TensorFlow Lite Görev Kitaplığına genel bakıştaki girişe bakın.
TensorFlow Lite kitaplığı
MavenCentral'da barındırılan AAR'ı geliştirme projenize ekleyerek Android uygulamanızdaki TensorFlow Lite kitaplığını kullanın.
Bunu build.gradle
bağımlılıklarınızda aşağıdaki gibi belirtebilirsiniz:
dependencies {
implementation 'org.tensorflow:tensorflow-lite:+'
}
Gecelik anlık görüntüler kullanıyorsanız Sonatype anlık görüntü deposunu projenize eklediğinizden emin olun.
Bu AAR, tüm Android ABI'ler için ikili dosyalar içerir. Yalnızca desteklemeniz gereken ABI'leri dahil ederek uygulamanızın ikili dosyasının boyutunu azaltabilirsiniz.
Belirli bir donanımı hedeflemediğiniz sürece çoğu durumda x86
, x86_64
ve arm32
ABI'lerini atlamanız gerekir. Bunu aşağıdaki Gradle konfigürasyonuyla yapılandırabilirsiniz. Özellikle yalnızca armeabi-v7a
ve arm64-v8a
içerir ve çoğu modern Android cihazını kapsamalıdır.
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
}
abiFilters
hakkında daha fazla bilgi edinmek için Android NDK belgelerindeki Android ABI'lerine bakın.
TensorFlow Lite Destek Kitaplığı
TensorFlow Lite Android Destek Kitaplığı, modelleri uygulamanıza entegre etmenizi kolaylaştırır. Ham giriş verilerinin modelin gerektirdiği biçime dönüştürülmesine ve modelin çıktısının yorumlanmasına yardımcı olan üst düzey API'ler sağlayarak gereken standart kod miktarını azaltır.
Görüntüler ve diziler de dahil olmak üzere giriş ve çıkışlar için ortak veri formatlarını destekler. Ayrıca görüntü yeniden boyutlandırma ve kırpma gibi görevleri gerçekleştiren ön ve son işleme birimleri de sağlar.
MavenCentral'da barındırılan TensorFlow Lite Destek Kitaplığı AAR'yı dahil ederek Android uygulamanızdaki Destek Kitaplığını kullanın.
Bunu build.gradle
bağımlılıklarınızda aşağıdaki gibi belirtebilirsiniz:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-support:+'
}
Gecelik anlık görüntüler kullanıyorsanız Sonatype anlık görüntü deposunu projenize eklediğinizden emin olun.
Nasıl başlayacağınıza ilişkin talimatlar için TensorFlow Lite Android Destek Kitaplığı'na bakın.
Kitaplıklar için minimum Android SDK sürümleri
Kütüphane | minSdkVersion | Cihaz Gereksinimleri |
---|---|---|
tensorflow-lite | 19 | NNAPI kullanımı API 27+ gerektirir |
tensorflow-lite-gpu | 19 | GLES 3.1 veya OpenCL (genellikle yalnızca API 21+ sürümlerinde mevcuttur) |
tensorflow-lite-altıgen | 19 | - |
tensorflow-lite-desteği | 19 | - |
tensorflow-lite-görev-vizyonu | 21 | android.graphics.Renk ile ilgili API, API 26+ gerektirir |
tensorflow-lite-görev metni | 21 | - |
tensorflow-lite-görev-ses | 23 | - |
tensorflow-lite-meta verileri | 19 | - |
Android Studio'yu kullanma
Yukarıda açıklanan geliştirme kitaplıklarına ek olarak Android Studio, aşağıda açıklandığı gibi TensorFlow Lite modellerinin entegrasyonuna yönelik destek de sağlar.
Android Studio ML Model Bağlama
Android Studio 4.1 ve sonraki sürümlerin ML Model Binding özelliği, .tflite
model dosyalarını mevcut Android uygulamanıza aktarmanıza ve kodunuzu bir modelle entegre etmeyi kolaylaştırmak için arayüz sınıfları oluşturmanıza olanak tanır.
Bir TensorFlow Lite (TFLite) modelini içe aktarmak için:
TFLite modelini kullanmak istediğiniz modüle sağ tıklayın veya Dosya > Yeni > Diğer > TensorFlow Lite Modeli seçeneğine tıklayın.
TensorFlow Lite dosyanızın konumunu seçin. Araçların, modülün bağımlılığını ML Modeli bağlamayla yapılandırdığını ve gerekli tüm bağımlılıkları otomatik olarak Android modülünüzün
build.gradle
dosyasına eklediğini unutmayın.İçe aktarma işlemini başlatmak için
Finish
tıklayın. İçe aktarma tamamlandığında araç, giriş ve çıkış tensörleri de dahil olmak üzere modeli açıklayan bir ekran görüntüler.Modeli kullanmaya başlamak için Kotlin veya Java'yı seçin, kodu kopyalayıp Örnek Kod bölümüne yapıştırın.
Android Studio'da ml
dizini altındaki TensorFlow Lite modeline çift tıklayarak model bilgisi ekranına dönebilirsiniz. Android Studio'nun Modle Binding özelliğini kullanma hakkında daha fazla bilgi için Android Studio sürüm notlarına bakın. Android Studio'da model bağlamayı kullanmaya ilişkin bir genel bakış için kod örneği talimatlarına bakın.
C ve C++ ile oluşturmaya yönelik araçlar
TensorFlow Lite için C ve C++ kitaplıkları, öncelikle uygulamalarını geliştirmek için Android Yerel Geliştirme Kiti'ni (NDK) kullanan geliştiricilere yöneliktir. Uygulamanızı NDK ile oluşturursanız TFLite'ı C++ aracılığıyla kullanmanın iki yolu vardır:
TFLite C API'si
Bu API'nin kullanılması, NDK kullanan geliştiriciler için önerilen yaklaşımdır. MavenCentral dosyasında barındırılan TensorFlow Lite AAR'ı indirin, tensorflow-lite-*.zip
olarak yeniden adlandırın ve sıkıştırılmış dosyayı açın. Dört başlık dosyasını headers/tensorflow/lite/
ve headers/tensorflow/lite/c/
klasörlerine ve ilgili libtensorflowlite_jni.so
dinamik kitaplığını NDK projenizdeki jni/
klasörüne eklemelisiniz.
c_api.h
başlık dosyası, TFLite C API'sinin kullanımına ilişkin temel belgeleri içerir.
TFLite C++ API'si
TFLite'ı C++ API aracılığıyla kullanmak istiyorsanız C++ paylaşılan kitaplıklarını oluşturabilirsiniz:
32bit armeabi-v7a:
bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so
64bit arm64-v8a:
bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so
Şu anda gerekli tüm başlık dosyalarını çıkarmanın doğrudan bir yolu yoktur, bu nedenle tüm başlık dosyalarını TensorFlow deposundan tensorflow/lite/
dosyasına eklemeniz gerekir. Ek olarak FlatBuffers ve Abseil'den başlık dosyalarına ihtiyacınız olacak.