Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

berat pengelompokan

Dikelola oleh Arm ML Tooling

Dokumen ini memberikan gambaran pada pengelompokan berat badan untuk membantu Anda menentukan bagaimana hal itu cocok dengan kasus penggunaan Anda.

Gambaran

Clustering, atau berbagi berat badan, mengurangi jumlah nilai berat badan yang unik dalam model, yang mengarah ke manfaat untuk penyebaran. Ini kelompok pertama bobot masing-masing lapisan ke N cluster, kemudian berbagi nilai centroid cluster untuk semua bobot milik cluster.

Teknik ini membawa perbaikan melalui kompresi Model. Masa Depan kerangka dukungan dapat membuka perbaikan jejak memori yang dapat membuat perbedaan penting untuk menyebarkan model pembelajaran yang mendalam pada sistem tertanam dengan sumber daya yang terbatas.

Kami telah bereksperimen dengan pengelompokan di visi dan pidato tugas. Kami telah melihat hingga 5x perbaikan dalam kompresi model dengan kerugian minimal akurasi, seperti yang ditunjukkan oleh hasil yang disajikan di bawah ini.

Harap dicatat bahwa pengelompokan akan memberikan berkurang manfaat bagi konvolusi dan padat lapisan yang mendahului lapisan bets normalisasi, serta dalam kombinasi dengan per-axis pasca-pelatihan kuantisasi.

API matriks kompatibilitas

Pengguna dapat menerapkan pengelompokan dengan API berikut:

  • Model bangunan: tf.keras dengan hanya Sequential dan model Fungsional
  • versi TensorFlow: TF 1.x untuk versi 1.14+ dan 2.x.
    • tf.compat.v1 dengan paket TF 2.x dan tf.compat.v2 dengan paket 1.X TF tidak didukung.
  • modus eksekusi TensorFlow: baik grafik dan bersemangat

hasil

klasifikasi citra

Model Asli clustered
Top-1 akurasi (%) Ukuran .tflite terkompresi (MB) Konfigurasi # Cluster Top-1 akurasi (%) Ukuran .tflite terkompresi (MB)
MobileNetV1 71,02 14.96
Selektif (terakhir 3 lapisan Conv2D) 256, 256, 32 70,62 8.42
Penuh (semua lapisan Conv2D) 64 66.07 2,98
MobileNetV2 72,29 12.90
Selektif (terakhir 3 lapisan Conv2D) 256, 256, 32 72,31 7.00
Penuh (semua lapisan Conv2D) 32 69,33 2,60

Model dilatih dan diuji pada ImageNet.

Kata kunci bercak

Model Asli clustered
Top-1 akurasi (%) Ukuran .tflite terkompresi (MB) Konfigurasi # Cluster Top-1 akurasi (%) Ukuran .tflite terkompresi (MB)
DS-CNN-L 95.03 1,5 Penuh 32 94,71 0,3

Model dilatih dan diuji pada SpeechCommands v0.02.

  1. Cerita bersambung model Keras ke dalam file .h5
  2. Mengkonversi file .h5 ke .tflite menggunakan TFLiteConverter.from_keras_model_file()
  3. Kompres file .tflite ke zip

contoh

Selain pengelompokan Berat di Keras contoh , lihat contoh berikut:

  • Cluster bobot dari model CNN dilatih di MNIST tulisan tangan dataset klasifikasi digit: kode

Pelaksanaan berat pengelompokan didasarkan pada Deep Kompresi: Pemampat Jauh Neural Networks Dengan Pemangkasan, terlatih Kuantisasi dan Huffman Coding kertas . Lihat bab 3, berjudul terlatih Kuantisasi dan Berat Sharing.