TensorFlow Lite menyediakan sejumlah alat untuk mengintegrasikan model ke dalam aplikasi Android. Halaman ini menjelaskan alat pengembangan untuk digunakan dalam membuat aplikasi dengan Kotlin, Java, dan C++, serta dukungan untuk pengembangan TensorFlow Lite di Android Studio.
Untuk mulai menulis kode Android dengan cepat, lihat Quickstart 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 kumpulan pustaka khusus tugas yang andal dan mudah digunakan untuk dibuat oleh pengembang aplikasi dengan TensorFlow Lite. Ini memberikan antarmuka model out-of-box yang dioptimalkan untuk tugas-tugas pembelajaran mesin populer, seperti klasifikasi gambar, pertanyaan dan jawaban, dll. Antarmuka model dirancang khusus untuk setiap tugas untuk mencapai kinerja dan kegunaan terbaik. Pustaka Tugas berfungsi lintas platform dan didukung di Java dan C++.
Untuk menggunakan Pustaka Tugas di aplikasi Android Anda, gunakan AAR dari MavenCentral untuk pustaka Task Vision , Pustaka Teks Tugas dan Pustaka Audio Tugas .
Anda dapat menentukan ini dalam dependensi build.gradle
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 nightly, pastikan Anda menambahkan repositori snapshot Sonatype ke proyek Anda.
Lihat pendahuluan di ikhtisar Pustaka Tugas TensorFlow Lite untuk 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
sebagai berikut:
dependencies {
implementation 'org.tensorflow:tensorflow-lite:+'
}
Jika Anda menggunakan snapshot nightly, pastikan Anda menambahkan repositori snapshot Sonatype ke proyek Anda.
AAR ini menyertakan biner untuk semua ABI Android . Anda dapat mengurangi ukuran biner aplikasi hanya dengan menyertakan ABI yang perlu didukung.
Kecuali jika Anda menargetkan perangkat keras tertentu, Anda harus menghilangkan ABI x86
, x86_64
, dan arm32
di sebagian besar kasus. Anda dapat mengonfigurasi ini 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 abiFilters
lebih lanjut, lihat ABI Android di dokumentasi Android NDK.
Pustaka Dukungan TensorFlow Lite
Pustaka Dukungan Android TensorFlow Lite mempermudah integrasi model ke dalam aplikasi Anda. Ini memberikan API tingkat tinggi yang membantu mengubah data input mentah menjadi bentuk yang diperlukan oleh model, dan menginterpretasikan output model, mengurangi jumlah kode boilerplate yang diperlukan.
Ini mendukung format data umum untuk input dan output, termasuk gambar dan array. Ini juga menyediakan unit pra dan pasca pemrosesan yang melakukan tugas seperti mengubah ukuran gambar dan memotong.
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
sebagai berikut:
dependencies {
implementation 'org.tensorflow:tensorflow-lite-support:+'
}
Jika Anda menggunakan snapshot nightly, 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 library
Perpustakaan | minSdkVersion | Persyaratan Perangkat |
---|---|---|
tensorflow-lite | 19 | Penggunaan NNAPI membutuhkan API 27+ |
tensorflow-lite-gpu | 19 | GLES 3.1 atau OpenCL (biasanya hanya tersedia di API 21+ |
tensorflow-lite-hexagon | 19 | - |
tensorflow-lite-dukungan | 19 | - |
tensorflow-lite-task-vision | 21 | android.graphics.API terkait warna membutuhkan API 26+ |
tensorflow-lite-tugas-teks | 21 | - |
tensorflow-lite-task-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 ini.
Pengikatan Model Android Studio ML
Fitur ML Model Binding Android Studio 4.1 dan yang lebih baru memungkinkan Anda mengimpor file model .tflite
ke aplikasi Android yang ada, dan menghasilkan kelas antarmuka untuk mempermudah integrasi kode Anda dengan model.
Untuk mengimpor model TensorFlow Lite (TFLite):
Klik kanan pada modul yang ingin Anda gunakan model TFLite atau klik File > New > Other > TensorFlow Lite Model .
Pilih lokasi file TensorFlow Lite Anda. Perhatikan bahwa alat ini mengonfigurasi dependensi modul dengan binding Model ML dan secara otomatis menambahkan semua dependensi yang diperlukan ke file
build.gradle
modul Android Anda.Klik
Finish
untuk memulai proses impor. Saat impor selesai, alat 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 Android Studio, lihat catatan rilis Android Studio . Untuk ikhtisar penggunaan pengikatan model di Android Studio, lihat petunjuk contoh kode .
Alat untuk membangun dengan C dan C++
Pustaka C dan C++ untuk TensorFlow Lite terutama ditujukan bagi developer yang menggunakan Android Native Development Kit (NDK) untuk membangun aplikasi mereka. Ada dua cara untuk menggunakan TFLite melalui C++ jika Anda membuat aplikasi dengan NDK:
TFLite C API
Menggunakan API ini adalah pendekatan yang direkomendasikan untuk developer yang menggunakan NDK. Unduh TensorFlow Lite AAR yang dihosting di file MavenCentral , ganti nama menjadi tensorflow-lite-*.zip
, dan unzip. Anda harus menyertakan empat file header di folder headers/tensorflow/lite/
dan headers/tensorflow/lite/c/
serta library dinamis libtensorflowlite_jni.so
yang relevan di folder jni/
di project NDK Anda.
File header c_api.h
berisi dokumentasi dasar tentang penggunaan TFLite C API.
TFLite C++ API
Jika Anda ingin menggunakan TFLite melalui C++ API, Anda dapat membuat pustaka bersama C++:
32bit armeabi-v7a:
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 mudah 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 .