TensorFlow Lite untuk Android

TensorFlow Lite memungkinkan Anda menjalankan model machine learning (ML) TensorFlow di aplikasi Android Anda. Sistem TensorFlow Lite menyediakan lingkungan eksekusi bawaan dan yang dapat disesuaikan untuk menjalankan model di Android dengan cepat dan efisien, termasuk opsi untuk akselerasi hardware.

Model machine learning

TensorFlow Lite menggunakan model TensorFlow yang diubah menjadi format model machine learning yang lebih kecil, portabel, dan lebih efisien. Anda dapat menggunakan model yang telah di-build sebelumnya dengan TensorFlow Lite di Android, atau mem-build model TensorFlow sendiri dan mengonversinya ke format TensorFlow Lite.

Halaman ini membahas cara menggunakan model machine learning yang sudah dibuat dan tidak mencakup pembuatan, pelatihan, pengujian, atau konversi model. Pelajari lebih lanjut cara memilih, memodifikasi, membuat, dan mengonversi model machine learning untuk TensorFlow Lite di halaman Model.

Menjalankan model di Android

Model TensorFlow Lite yang berjalan di dalam aplikasi Android mengambil data, memproses data, dan menghasilkan prediksi berdasarkan logika model. Model TensorFlow Lite memerlukan lingkungan runtime khusus agar dapat dijalankan, dan data yang diteruskan ke model harus dalam format data tertentu, yang disebut tensor. Saat memproses data, yang dikenal sebagai menjalankan inferensi, model tersebut menghasilkan hasil prediksi sebagai tensor baru, dan meneruskannya ke aplikasi Android sehingga dapat mengambil tindakan, seperti menampilkan hasil kepada pengguna atau menjalankan logika bisnis tambahan.

Alur eksekusi fungsional untuk model TensorFlow Lite di aplikasi
Android

Gambar 1. Alur eksekusi fungsional untuk model TensorFlow Lite di aplikasi Android.

Pada tingkat desain fungsional, aplikasi Android Anda memerlukan elemen berikut untuk menjalankan model TensorFlow Lite:

  • Lingkungan runtime TensorFlow Lite untuk menjalankan model
  • Pengendali input model untuk mengubah data menjadi tensor
  • Pengendali output model untuk menerima tensor hasil output dan menafsirkannya sebagai hasil prediksi

Bagian berikut menjelaskan cara library dan alat TensorFlow Lite menyediakan elemen fungsional ini.

Membangun aplikasi dengan TensorFlow Lite

Bagian ini menjelaskan jalur yang direkomendasikan dan paling umum untuk menerapkan TensorFlow Lite di Aplikasi Android Anda. Anda harus memperhatikan lingkungan runtime dan library pengembangan. Jika Anda telah mengembangkan model kustom, pastikan untuk meninjau bagian Jalur pengembangan lanjutan.

Opsi lingkungan runtime

Ada beberapa cara untuk mengaktifkan lingkungan runtime untuk menjalankan model di aplikasi Android Anda. Berikut adalah opsi yang lebih disukai:

Secara umum, Anda harus menggunakan lingkungan runtime yang disediakan oleh layanan Google Play karena lebih hemat ruang daripada lingkungan standar karena dimuat secara dinamis, sehingga ukuran aplikasi Anda tetap lebih kecil. Layanan Google Play juga otomatis menggunakan rilis runtime TensorFlow Lite terbaru yang stabil, yang memberi Anda fitur tambahan dan performa yang lebih baik dari waktu ke waktu. Jika Anda menawarkan aplikasi pada perangkat yang tidak menyertakan layanan Google Play atau Anda perlu mengelola lingkungan runtime ML dengan cermat, sebaiknya gunakan runtime TensorFlow Lite standar. Opsi ini menggabungkan kode tambahan ke dalam aplikasi, sehingga Anda dapat memiliki kontrol lebih besar atas runtime ML di aplikasi Anda, tetapi dapat meningkatkan ukuran download aplikasi Anda.

Akses lingkungan runtime ini di aplikasi Android dengan menambahkan library pengembangan TensorFlow Lite ke lingkungan pengembangan aplikasi Anda. Untuk mengetahui informasi tentang cara menggunakan lingkungan runtime standar di aplikasi Anda, lihat bagian berikutnya.

Library

Anda dapat mengakses Interpreter API menggunakan layanan Google Play. Anda dapat menggunakan library core dan dukungan TensorFlow Lite di aplikasi Android Anda. Untuk mengetahui detail pemrograman tentang penggunaan library dan lingkungan runtime TensorFlow Lite, lihat Alat pengembangan untuk Android.

Mendapatkan model

Menjalankan model di aplikasi Android memerlukan model format TensorFlow Lite. Anda dapat menggunakan model bawaan atau mem-build model dengan TensorFlow dan mengonversinya ke format Lite. Untuk mengetahui informasi selengkapnya tentang cara mendapatkan model untuk aplikasi Android, lihat halaman Model TensorFlow Lite.

Menangani data input

Setiap data yang Anda teruskan ke model ML harus menjadi tensor dengan struktur data tertentu, yang sering disebut dengan bentuk tensor. Untuk memproses data dengan model, kode aplikasi Anda harus mengubah data dari format native, seperti data gambar, teks, atau audio, menjadi tensor dalam bentuk yang diperlukan untuk model Anda.

Menjalankan inferensi

Pemrosesan data melalui model untuk menghasilkan hasil prediksi disebut menjalankan inferensi. Menjalankan inferensi di aplikasi Android memerlukan lingkungan runtime TensorFlow Lite, model, dan data input.

Kecepatan model dapat menghasilkan inferensi pada perangkat tertentu bergantung pada ukuran data yang diproses, kompleksitas model, dan resource komputasi yang tersedia seperti memori dan CPU, atau prosesor khusus yang disebut akselerator. Model machine learning dapat berjalan lebih cepat pada prosesor khusus ini, seperti unit pemrosesan grafis (GPU) dan unit pemrosesan tensor (TPU), menggunakan driver hardware TensorFlow Lite yang disebut delegasi. Untuk informasi selengkapnya tentang delegasi dan akselerasi hardware pemrosesan model, lihat Ringkasan akselerasi hardware.

Menangani hasil output

Model menghasilkan hasil prediksi sebagai tensor, yang harus ditangani oleh aplikasi Android Anda dengan mengambil tindakan atau menampilkan hasil kepada pengguna. Hasil output model dapat sesederhana angka yang sesuai dengan satu hasil (0 = dog, 1 = cat, 2 = bird) untuk klasifikasi gambar, hingga hasil yang jauh lebih kompleks, seperti beberapa kotak pembatas untuk beberapa objek yang diklasifikasikan dalam sebuah gambar, dengan rating keyakinan prediksi antara 0 dan 1.

Jalur pengembangan lanjutan

Saat menggunakan model TensorFlow Lite yang lebih canggih dan disesuaikan, Anda mungkin perlu menggunakan pendekatan pengembangan yang lebih canggih dari yang dijelaskan di atas. Bagian berikut menjelaskan teknik lanjutan untuk mengeksekusi model dan mengembangkannya untuk TensorFlow Lite di aplikasi Android.

Lingkungan runtime lanjutan

Selain lingkungan runtime standar dan layanan Google Play untuk TensorFlow Lite, ada lingkungan runtime tambahan yang dapat Anda gunakan dengan aplikasi Android. Kemungkinan besar penggunaan untuk lingkungan ini adalah jika Anda memiliki model machine learning yang menggunakan operasi ML yang tidak didukung oleh lingkungan runtime standar untuk TensorFlow Lite.

  • Runtime fleksibel untuk TensorFlow Lite
  • Runtime TensorFlow Lite yang di-build kustom

Runtime Fleksibel TensorFlow Lite dapat Anda gunakan untuk menyertakan operator tertentu yang diperlukan untuk model Anda. Sebagai opsi lanjutan untuk menjalankan model, Anda dapat mem-build TensorFlow Lite untuk Android guna menyertakan operator dan fungsi lain yang diperlukan untuk menjalankan model machine learning TensorFlow. Untuk mengetahui informasi selengkapnya, lihat Mem-build TensorFlow Lite untuk Android.

C dan C++ API

TensorFlow Lite juga menyediakan API untuk menjalankan model menggunakan C dan C++. Jika aplikasi Anda menggunakan Android NDK, sebaiknya gunakan API ini. Anda juga dapat mempertimbangkan untuk menggunakan API ini jika Anda ingin dapat berbagi kode di antara beberapa platform. Untuk mengetahui informasi selengkapnya tentang opsi pengembangan ini, lihat halaman Alat pengembangan.

Eksekusi model berbasis server

Secara umum, Anda harus menjalankan model di aplikasi pada perangkat Android untuk memanfaatkan latensi yang lebih rendah dan privasi data yang lebih baik bagi pengguna. Namun, dalam kasus tertentu, menjalankan model di server cloud di luar perangkat adalah solusi yang lebih baik. Misalnya, jika Anda memiliki model besar yang tidak mudah dikompresi ke ukuran yang sesuai dengan perangkat Android pengguna, atau dapat dijalankan dengan performa yang wajar di perangkat tersebut. Pendekatan ini juga dapat menjadi solusi pilihan Anda jika performa model yang konsisten di berbagai perangkat menjadi prioritas utama.

Google Cloud menawarkan rangkaian layanan lengkap untuk menjalankan model machine learning TensorFlow. Untuk mengetahui informasi selengkapnya, lihat halaman produk AI dan machine learning Google Cloud.

Pengembangan dan pengoptimalan model kustom

Jalur pengembangan yang lebih canggih kemungkinan akan mencakup pengembangan model machine learning kustom dan pengoptimalan model tersebut untuk digunakan di perangkat Android. Jika berencana membuat model kustom, pastikan Anda mempertimbangkan untuk menerapkan teknik kuantisasi pada model guna mengurangi biaya memori dan pemrosesan. Untuk mengetahui informasi selengkapnya tentang cara mem-build model berperforma tinggi untuk digunakan dengan TensorFlow Lite, lihat Praktik terbaik performa di bagian Model.