Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Quantization pelatihan sadar

Dikelola oleh TensorFlow Model Optimasi

Ada dua bentuk kuantisasi: pasca-pelatihan kuantisasi dan kuantisasi pelatihan sadar. Mulailah dengan pasca-pelatihan kuantisasi karena lebih mudah untuk digunakan, meskipun kuantisasi pelatihan sadar sering lebih baik untuk akurasi model.

Halaman ini memberikan gambaran pada kuantisasi pelatihan sadar untuk membantu Anda menentukan bagaimana hal itu cocok dengan kasus penggunaan Anda.

Gambaran

Kuantisasi pelatihan menyadari mengemulasi inferensi-waktu kuantisasi, menciptakan sebuah model yang alat hilir akan digunakan untuk memproduksi model-benar dikuantisasi. Model terkuantisasi menggunakan lebih rendah-presisi (misalnya 8-bit bukan 32-bit float), yang mengarah ke manfaat selama penyebaran.

Deploy dengan kuantisasi

Kuantisasi membawa perbaikan melalui Model kompresi dan pengurangan latency. Dengan default API, para psikiater ukuran model yang oleh 4x, dan kami biasanya melihat antara 1,5 - 4x perbaikan dalam CPU latency di backends diuji. Akhirnya, perbaikan latency dapat dilihat pada akselerator pembelajaran mesin yang kompatibel, seperti EdgeTPU dan NNAPI.

Teknik ini digunakan dalam produksi dalam pidato, visi, teks, dan menerjemahkan kasus penggunaan. Kode saat ini mendukung subset dari model ini .

Percobaan dengan kuantisasi dan perangkat keras terkait

Pengguna dapat mengkonfigurasi parameter kuantisasi (misalnya jumlah bit) dan untuk beberapa derajat, algoritma yang mendasari. Dengan perubahan ini dari default API, tidak ada didukung jalur penyebaran.

API khusus untuk konfigurasi ini adalah eksperimental dan tidak tunduk pada kompatibilitas.

kompatibilitas API

Pengguna dapat menerapkan kuantisasi dengan API berikut:

  • Model bangunan: tf.keras dengan hanya Sequential dan model Fungsional.
  • versi TensorFlow: TF 2.x untuk tf-malam.
  • modus eksekusi TensorFlow: eksekusi bersemangat

Hal ini pada roadmap kami untuk menambahkan dukungan dalam bidang berikut:

  • model bangunan: menjelaskan bagaimana Model subclassed telah dibatasi tidak support
  • Pelatihan didistribusikan: tf.distribute

dukungan umum matriks

Dukungan tersedia dalam bidang berikut:

  • Cakupan Model: model menggunakan lapisan daftar putih , BatchNormalization ketika mengikuti Conv2D dan DepthwiseConv2D lapisan, dan dalam kasus yang terbatas, Concat .
  • akselerasi hardware: default API kami yang kompatibel dengan percepatan EdgeTPU, NNAPI, dan backends TFLite, antara lain. Lihat peringatan dalam peta jalan.
  • Deploy dengan kuantisasi: kuantisasi hanya per-axis untuk lapisan convolutional, tidak per-tensor kuantisasi, saat ini didukung.

Hal ini pada roadmap kami untuk menambahkan dukungan dalam bidang berikut:

  • cakupan Model: diperluas untuk mencakup RNN / LSTMs dan dukungan Concat umum.
  • akselerasi hardware: memastikan converter TFLite dapat menghasilkan model full-integer. Lihat masalah ini untuk rincian.
  • Bereksperimen dengan kasus penggunaan kuantisasi:
    • Bereksperimen dengan algoritma kuantisasi yang lapisan rentang Keras atau memerlukan langkah pelatihan.
    • Menstabilkan API.

hasil

klasifikasi citra dengan alat

Model Non-dikuantisasi Top-1 Akurasi 8-bit terkuantisasi Akurasi
MobilenetV1 224 71,03% 71,06%
Resnet v1 50 76,3% 76,1%
MobilenetV2 224 70,77% 70,01%

Model diuji pada Imagenet dan dievaluasi di kedua TensorFlow dan TFLite.

klasifikasi citra untuk teknik

Model Non-dikuantisasi Top-1 Akurasi 8-Bit terkuantisasi Akurasi
Nasnet-Mobile 74% 73%
Resnet-v2 50 75,6% 75%

Model diuji pada Imagenet dan dievaluasi di kedua TensorFlow dan TFLite.

contoh

Selain contoh kuantisasi pelatihan sadar , lihat contoh berikut:

  • Model CNN pada MNIST tulisan tangan klasifikasi digit tugas dengan kuantisasi: kode

Untuk latar belakang sesuatu yang mirip, lihat Kuantisasi dan Pelatihan Neural Networks untuk Efisien Integer-Arithmetic-Hanya Inference kertas . Makalah ini memperkenalkan beberapa konsep bahwa alat ini menggunakan. pelaksanaannya tidak persis sama, dan ada konsep tambahan yang digunakan dalam alat ini (misalnya per-axis kuantisasi).