Pertanyaan Umum (FAQ)

Jika Anda tidak menemukan jawaban atas pertanyaan Anda di sini, silakan lihat dokumentasi terperinci kami untuk topik tersebut atau ajukan masalah GitHub .

Konversi Model

Format apa yang didukung untuk konversi dari TensorFlow ke TensorFlow Lite?

Format yang didukung tercantum di sini

Mengapa beberapa operasi tidak diterapkan di TensorFlow Lite?

Agar TFLite tetap ringan, hanya operator TF tertentu (yang tercantum dalam daftar yang diizinkan ) yang didukung di TFLite.

Mengapa model saya tidak terkonversi?

Karena jumlah operasi TensorFlow Lite lebih kecil dibandingkan TensorFlow, beberapa model mungkin tidak dapat melakukan konversi. Beberapa kesalahan umum tercantum di sini .

Untuk masalah konversi yang tidak terkait dengan operasi yang hilang atau operasi aliran kontrol, cari masalah GitHub kami atau ajukan masalah baru .

Bagaimana cara menguji apakah model TensorFlow Lite berperilaku sama dengan model TensorFlow asli?

Cara terbaik untuk mengujinya adalah dengan membandingkan keluaran model TensorFlow dan TensorFlow Lite untuk masukan yang sama (data pengujian atau masukan acak) seperti yang ditunjukkan di sini .

Bagaimana cara menentukan input/output untuk buffer protokol GraphDef?

Cara termudah untuk memeriksa grafik dari file .pb adalah dengan menggunakan Netron , penampil sumber terbuka untuk model pembelajaran mesin.

Jika Netron tidak dapat membuka grafik, Anda dapat mencoba alat ringkasan_graf .

Jika alat ringkasan_graf menghasilkan kesalahan, Anda dapat memvisualisasikan GraphDef dengan TensorBoard dan mencari masukan dan keluaran dalam grafik. Untuk memvisualisasikan file .pb , gunakan skrip import_pb_to_tensorboard.py seperti di bawah ini:

python import_pb_to_tensorboard.py --model_dir <model path> --log_dir <log dir path>

Bagaimana cara memeriksa file .tflite ?

Netron adalah cara termudah untuk memvisualisasikan model TensorFlow Lite.

Jika Netron tidak dapat membuka model TensorFlow Lite, Anda dapat mencoba skrip visualize.py di repositori kami.

Jika Anda menggunakan TF 2.5 atau versi yang lebih baru

python -m tensorflow.lite.tools.visualize model.tflite visualized_model.html

Jika tidak, Anda dapat menjalankan skrip ini dengan Bazel

bazel run //tensorflow/lite/tools:visualize model.tflite visualized_model.html

Optimasi

Bagaimana cara mengurangi ukuran model TensorFlow Lite yang dikonversi?

Kuantisasi pasca pelatihan dapat digunakan selama konversi ke TensorFlow Lite untuk mengurangi ukuran model. Kuantisasi pasca-pelatihan mengkuantisasi bobot hingga presisi 8-bit dari floating-point dan mendekuantisasi bobot tersebut selama runtime untuk melakukan komputasi floating point. Namun perlu diingat bahwa hal ini dapat mempunyai beberapa implikasi akurasi.

Jika melatih ulang model adalah suatu pilihan, pertimbangkan pelatihan sadar-kuantisasi . Namun, perhatikan bahwa pelatihan sadar kuantisasi hanya tersedia untuk subset arsitektur jaringan neural konvolusional.

Untuk pemahaman yang lebih mendalam tentang berbagai metode pengoptimalan, lihat Pengoptimalan model .

Bagaimana cara mengoptimalkan kinerja TensorFlow Lite untuk tugas pembelajaran mesin saya?

Proses tingkat tinggi untuk mengoptimalkan kinerja TensorFlow Lite terlihat seperti ini:

  • Pastikan Anda memiliki model yang tepat untuk tugas tersebut. Untuk klasifikasi gambar, lihat TensorFlow Hub .
  • Sesuaikan jumlah utas. Banyak operator TensorFlow Lite mendukung kernel multi-thread. Anda dapat menggunakan SetNumThreads() di C++ API untuk melakukan ini. Namun, peningkatan thread menghasilkan variabilitas kinerja tergantung pada lingkungan.
  • Gunakan Akselerator Perangkat Keras. TensorFlow Lite mendukung akselerasi model untuk perangkat keras tertentu menggunakan delegasi. Lihat panduan Delegasi kami untuk informasi tentang akselerator apa saja yang didukung dan cara menggunakannya dengan model di perangkat Anda.
  • (Lanjutan) Model Profil. Alat benchmarking Tensorflow Lite memiliki profiler bawaan yang dapat menampilkan statistik per operator. Jika Anda mengetahui cara mengoptimalkan kinerja operator untuk platform spesifik Anda, Anda dapat menerapkan operator khusus .

Untuk diskusi lebih mendalam tentang cara mengoptimalkan kinerja, lihat Praktik Terbaik .