TensorFlow Lite menyediakan sejumlah alat untuk mengintegrasikan model ke dalam aplikasi Android. Halaman ini menjelaskan alat pengembangan untuk digunakan dalam mem-build aplikasi dengan Kotlin, Java, dan C++, serta dukungan untuk pengembangan TensorFlow Lite di Android Studio.
Untuk mulai menulis kode Android dengan cepat, lihat Mulai Cepat untuk Android
Alat untuk membangun dengan Kotlin dan Java
Bagian berikut menjelaskan alat pengembangan untuk TensorFlow Lite yang menggunakan bahasa Kotlin dan Java.
Pustaka Tugas TensorFlow Lite
Pustaka Tugas TensorFlow Lite berisi serangkaian pustaka khusus tugas yang canggih dan mudah digunakan untuk dibuat oleh pengembang aplikasi dengan TensorFlow Lite. Ini menyediakan antarmuka model siap pakai yang dioptimalkan untuk tugas pembelajaran mesin populer, seperti klasifikasi gambar, tanya jawab, dll. Antarmuka model dirancang khusus untuk setiap tugas guna mencapai kinerja dan kegunaan terbaik. Perpustakaan Tugas berfungsi lintas platform dan didukung di Java dan C++.
Untuk menggunakan Task Library di aplikasi Android Anda, gunakan AAR dari MavenCentral untuk Task Vision Library , Task Text Library , dan Task Audio Library .
Anda dapat menentukan ini dalam dependensi build.gradle
Anda sebagai berikut:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-task-vision:+'
implementation 'org.tensorflow:tensorflow-lite-task-text:+'
implementation 'org.tensorflow:tensorflow-lite-task-audio:+'
}
Jika Anda menggunakan snapshot malam, pastikan Anda menambahkan repositori snapshot Sonatype ke proyek Anda.
Lihat pendahuluan di ringkasan TensorFlow Lite Task Library untuk mengetahui detail selengkapnya.
Pustaka TensorFlow Lite
Gunakan pustaka TensorFlow Lite di aplikasi Android Anda dengan menambahkan AAR yang dihosting di MavenCentral ke proyek pengembangan Anda.
Anda dapat menentukan ini dalam dependensi build.gradle
Anda sebagai berikut:
dependencies {
implementation 'org.tensorflow:tensorflow-lite:+'
}
Jika Anda menggunakan snapshot malam, pastikan Anda menambahkan repositori snapshot Sonatype ke proyek Anda.
AAR ini mencakup biner untuk semua ABI Android . Anda dapat mengurangi ukuran biner aplikasi Anda hanya dengan menyertakan ABI yang perlu Anda dukung.
Kecuali Anda menargetkan perangkat keras tertentu, Anda harus menghilangkan ABI x86
, x86_64
, dan arm32
dalam banyak kasus. Anda dapat mengonfigurasinya dengan konfigurasi Gradle berikut. Ini secara khusus hanya mencakup armeabi-v7a
dan arm64-v8a
, dan harus mencakup sebagian besar perangkat Android modern.
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}
}
Untuk mempelajari lebih lanjut tentang abiFilters
, lihat ABI Android dalam dokumentasi Android NDK.
Pustaka Dukungan TensorFlow Lite
Pustaka Dukungan Android TensorFlow Lite mempermudah integrasi model ke dalam aplikasi Anda. Ini menyediakan API tingkat tinggi yang membantu mengubah data masukan mentah ke dalam bentuk yang diperlukan oleh model, dan menafsirkan keluaran model, sehingga mengurangi jumlah kode boilerplate yang diperlukan.
Ini mendukung format data umum untuk input dan output, termasuk gambar dan array. Ini juga menyediakan unit sebelum dan sesudah pemrosesan yang melakukan tugas seperti mengubah ukuran dan memotong gambar.
Gunakan Pustaka Dukungan di aplikasi Android Anda dengan menyertakan AAR Pustaka Dukungan TensorFlow Lite yang dihosting di MavenCentral .
Anda dapat menentukan ini dalam dependensi build.gradle
Anda sebagai berikut:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-support:+'
}
Jika Anda menggunakan snapshot malam, pastikan Anda menambahkan repositori snapshot Sonatype ke proyek Anda.
Untuk petunjuk tentang cara memulai, lihat Pustaka Dukungan Android TensorFlow Lite .
Versi Android SDK minimum untuk perpustakaan
Perpustakaan | minSdkVersion | Persyaratan Perangkat |
---|---|---|
tensorflow-lite | 19 | Penggunaan NNAPI memerlukan API 27+ |
tensorflow-lite-gpu | 19 | GLES 3.1 atau OpenCL (biasanya hanya tersedia di API 21+ |
tensorflow-lite-segi enam | 19 | - |
dukungan tensorflow-lite | 19 | - |
tensorflow-lite-tugas-visi | 21 | API terkait android.graphics.Color memerlukan API 26+ |
tensorflow-lite-tugas-teks | 21 | - |
tensorflow-lite-tugas-audio | 23 | - |
tensorflow-lite-metadata | 19 | - |
Menggunakan Android Studio
Selain pustaka pengembangan yang dijelaskan di atas, Android Studio juga menyediakan dukungan untuk mengintegrasikan model TensorFlow Lite, seperti yang dijelaskan di bawah.
Pengikatan Model Android Studio ML
Fitur ML Model Binding di Android Studio 4.1 dan yang lebih baru memungkinkan Anda mengimpor file model .tflite
ke aplikasi Android yang sudah ada, dan membuat kelas antarmuka untuk mempermudah integrasi kode dengan model.
Untuk mengimpor model TensorFlow Lite (TFLite):
Klik kanan pada modul yang ingin Anda gunakan model TFLitenya atau klik File > New > Other > TensorFlow Lite Model .
Pilih lokasi file TensorFlow Lite Anda. Perhatikan bahwa alat ini mengonfigurasi dependensi modul dengan pengikatan Model ML dan secara otomatis menambahkan semua dependensi yang diperlukan ke file
build.gradle
modul Android Anda.Klik
Finish
untuk memulai proses impor. Ketika impor selesai, alat tersebut menampilkan layar yang menjelaskan model, termasuk tensor input dan outputnya.Untuk mulai menggunakan model, pilih Kotlin atau Java, salin dan tempel kode di bagian Kode Contoh .
Anda dapat kembali ke layar informasi model dengan mengklik dua kali model TensorFlow Lite di bawah direktori ml
di Android Studio. Untuk informasi selengkapnya tentang penggunaan fitur Modle Binding di Android Studio, lihat catatan rilis Android Studio. Untuk ringkasan penggunaan pengikatan model di Android Studio, lihat petunjuk contoh kode.
Alat untuk membangun dengan C dan C++
Library C dan C++ untuk TensorFlow Lite terutama ditujukan bagi developer yang menggunakan Android Native Development Kit (NDK) untuk membangun aplikasi mereka. Ada dua cara menggunakan TFLite melalui C++ jika Anda membangun aplikasi dengan NDK:
API TFLite C
Penggunaan API ini adalah pendekatan yang disarankan bagi pengembang yang menggunakan NDK. Unduh file TensorFlow Lite AAR yang dihosting di MavenCentral , ganti namanya menjadi tensorflow-lite-*.zip
, dan unzip. Anda harus menyertakan empat file header di folder headers/tensorflow/lite/
dan headers/tensorflow/lite/c/
serta pustaka dinamis libtensorflowlite_jni.so
yang relevan di folder jni/
di proyek NDK Anda.
File header c_api.h
berisi dokumentasi dasar tentang penggunaan TFLite C API.
API TFLite C++
Jika Anda ingin menggunakan TFLite melalui C++ API, Anda dapat membangun pustaka bersama C++:
armeabi-v7a 32bit:
bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so
lengan 64bit64-v8a:
bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so
Saat ini, tidak ada cara langsung untuk mengekstrak semua file header yang diperlukan, jadi Anda harus menyertakan semua file header di tensorflow/lite/
dari repositori TensorFlow. Selain itu, Anda memerlukan file header dari FlatBuffers dan Abseil .