Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Gewicht Clustering

Verwaltet von Arm ML Tooling

Dieses Dokument gibt einen Überblick über Gewicht Clustering, um zu ermitteln, wie es mit Ihrem Anwendungsfall paßt.

Überblick

Clustering oder Gewicht Sharing, reduziert die Anzahl der eindeutigen Gewichtswerte in einem Modell, was zu Vorteilen für die Bereitstellung. Es ersten Gruppen die Gewichte jeder Schicht zu N Cluster, dann teilt der Zentroid des Clusters Wert für alle Gewichte zu dem Cluster gehören.

Diese Technik bringt Verbesserungen durch Modell Kompression. Zukünftige Rahmen Unterstützung können Speicherbedarf Verbesserungen entsperren, die einen entscheidenden Unterschied für die Bereitstellung von tiefen Lernmodelle auf Embedded-Systemen mit begrenzten Ressourcen machen.

Wir haben mit Clustering über Vision und Sprachaufgaben experimentiert. Wir haben in Modell Kompression mit minimalem Verlust an Genauigkeit zu 5x Verbesserungen gesehen auf, wie sie durch die demonstrierte Ergebnisse unten dargestellt.

Bitte beachten Sie, dass Clustering reduziert Vorteile für die Faltung und dichten Schichten bieten wird, die eine Batch-Normalisierung Schicht vorausgehen, sowie in Kombination mit pro-Achse nach dem Training Quantisierung.

API Kompatibilitätsmatrix

Benutzer können Clustering mit den folgenden APIs gelten:

  • Modellbau: tf.keras mit nur Sequential und Funktionsmodelle
  • TensorFlow Versionen: TF 1.x für Versionen 1.14+ und 2.x.
    • tf.compat.v1 mit TF 2.X Paket und tf.compat.v2 mit TF 1.X Paket wird nicht unterstützt.
  • TensorFlow Ausführungsmodus: beide Graphen und eifrig

Ergebnisse

Bildklassifizierung

Modell Original Clustered
Top-1 Genauigkeit (%) Größe der komprimierten .tflite (MB) Aufbau Anzahl der Cluster Top-1 Genauigkeit (%) Größe der komprimierten .tflite (MB)
MobileNetV1 71,02 14,96
Selective (letzte 3 Conv2D Schichten) 256, 256, 32 70,62 8.42
Full (alle Conv2D Schichten) 64 66,07 2.98
MobileNetV2 72.29 12.90
Selective (letzte 3 Conv2D Schichten) 256, 256, 32 72,31 7.00
Full (alle Conv2D Schichten) 32 69,33 2,60

Die Modelle wurden trainiert und getestet auf IMAGEnet.

Keyword-Spotting

Modell Original Clustered
Top-1 Genauigkeit (%) Größe der komprimierten .tflite (MB) Aufbau Anzahl der Cluster Top-1 Genauigkeit (%) Größe der komprimierten .tflite (MB)
DS-CNN-L 95,03 1.5 Voll 32 94,71 0,3

Die Modelle wurden geschult und auf SpeechCommands v0.02 getestet.

  1. Serialisiert werden die Keras Modell in .h5 Datei
  2. Konvertieren Sie die Datei in .h5 .tflite mit TFLiteConverter.from_keras_model_file()
  3. Komprimieren Sie die .tflite-Datei in eine zip

Beispiele

Neben dem Gewicht Clustering in Keras Beispiel , siehe die folgenden Beispiele:

  • Cluster die Gewichte eines Modells auf der CNN ausgebildeten MNIST handgeschriebener Zeichenklassifizierung - Datensatz: code

Das Gewicht Clustering - Implementierung basiert auf der Deep Compression: Kompression Tiefen Neuronale Netze mit Baum-, Ausgebildete Quantisierung und Huffman - Kodierung Papier . Siehe Kapitel 3, mit dem Titel Ausgebildete Quantisierung und Gewicht Freigabe.