Bantuan melindungi Great Barrier Reef dengan TensorFlow pada Kaggle Bergabung Tantangan

Kompatibilitas operator TensorFlow Lite dan TensorFlow

TensorFlow Lite mendukung sejumlah operasi TensorFlow yang digunakan dalam model inferensi umum. Saat diproses oleh Pengonversi Pengoptimalan TensorFlow Lite, operasi tersebut dapat dieliminasi atau digabungkan, sebelum operasi yang didukung dipetakan ke mitra TensorFlow Lite-nya.

Karena pustaka operator bawaan TensorFlow Lite hanya mendukung operator TensorFlow dalam jumlah terbatas, tidak setiap model dapat dikonversi. Bahkan untuk operasi yang didukung, terkadang pola penggunaan yang sangat spesifik diharapkan, untuk alasan kinerja. Kami berharap dapat memperluas rangkaian operasi yang didukung dalam rilis TensorFlow Lite mendatang.

Cara terbaik untuk memahami cara membuat model TensorFlow yang dapat digunakan dengan TensorFlow Lite adalah dengan hati-hati mempertimbangkan bagaimana operasi dikonversi dan dioptimalkan, bersama dengan batasan yang diberlakukan oleh proses ini.

Jenis yang didukung

Sebagian besar operasi TensorFlow Lite menargetkan inferensi floating-point ( float32 ) dan terkuantisasi ( uint8 , int8 ), tetapi banyak operasi yang belum tf.float16 jenis lain seperti tf.float16 dan string.

Selain menggunakan versi operasi yang berbeda, perbedaan lain antara model floating-point dan model terkuantisasi adalah cara konversinya. Konversi terkuantisasi membutuhkan informasi rentang dinamis untuk tensor. Ini memerlukan "kuantisasi palsu" selama pelatihan model, mendapatkan informasi jangkauan melalui kumpulan data kalibrasi, atau melakukan estimasi kisaran "saat itu juga". Lihat kuantisasi .

Operasi dan pembatasan yang didukung

TensorFlow Lite mendukung subset operasi TensorFlow dengan beberapa batasan. Untuk daftar lengkap operasi dan batasan, lihat halaman TF Lite Ops .

Konversi lurus ke depan, pelipatan konstan dan sekering

Sejumlah operasi TensorFlow dapat diproses oleh TensorFlow Lite meskipun tidak memiliki padanan langsung. Ini adalah kasus untuk operasi yang dapat dengan mudah dihapus dari grafik ( tf.identity ), diganti dengan tensor ( tf.placeholder ), atau digabungkan ke dalam operasi yang lebih kompleks ( tf.nn.bias_add ). Bahkan beberapa operasi yang didukung terkadang dapat dihapus melalui salah satu proses ini.

Berikut daftar tidak lengkap operasi TensorFlow yang biasanya dihapus dari grafik:

Operasi Eksperimental

Operasi TensorFlow Lite berikut ada, tetapi tidak siap untuk model khusus:

  • CALL
  • CONCAT_EMBEDDINGS
  • CUSTOM
  • EMBEDDING_LOOKUP_SPARSE
  • HASHTABLE_LOOKUP
  • LSH_PROJECTION
  • SKIP_GRAM
  • SVDF