Main Content

Quantisierung, Projektion und Pruning

Komprimieren eines tiefen neuronalen Netzes durch Quantisierung, Projektion oder Pruning

Verwenden Sie die Deep Learning Toolbox™ zusammen mit dem Support-Paket für die Model Quantization Library der Deep Learning Toolbox, um den Speicherbedarf und die Rechenanforderungen eines tiefen neuronalen Netzes zu reduzieren durch:

  • Pruning von Filtern aus Faltungsschichten durch Taylor-Approximation erster Ordnung. Sie können dann C/C++ oder CUDA®-Code aus diesem beschnittenen Netz generieren.

  • Projektion von Schichten durch Durchführung einer Hauptkomponentenanalyse (PCA) auf die Schichtaktivierungen unter Verwendung eines für die Trainingsdaten repräsentativen Datensatzes und Anwendung linearer Projektionen auf die lernbaren Schichtparameter. Vorwärtsdurchläufe eines projizierten tiefen neuronalen Netzes sind in der Regel schneller, wenn Sie das Netz mit bibliotheksfreier C/C++ Codegenerierung auf eingebetteter Hardware bereitstellen.

  • Quantisierung der Gewichte, Verzerrungen und Aktivierungen von Schichten auf skalierte Ganzzahl-Datentypen mit reduzierter Genauigkeit. Sie können dann C/C++, CUDA- oder HDL-Code aus diesem quantisierten Netz generieren.

    Für die C/C++ und CUDA-Codegenerierung erzeugt die Software Code für ein tiefes faltendes neuronales Netz, indem sie die Gewichte, Verzerrungen und Aktivierungen der Faltungsschichten auf 8-Bit skalierte Ganzzahldatentypen quantisiert. Die Quantisierung wird durchgeführt, indem die Kalibrierungsergebnisdatei, die von der calibrate-Funktion erzeugt wurde, dem codegen (MATLAB Coder)-Befehl bereitstellt.

    Die Codegenerierung unterstützt keine quantisierten tiefen neuronalen Netze, die von der quantize-Funktion erzeugt werden.

Funktionen

alle erweitern

taylorPrunableNetworkNetwork that can be pruned by using first-order Taylor approximation (Seit R2022a)
forwardCompute deep learning network output for training (Seit R2019b)
predictCompute deep learning network output for inference (Seit R2019b)
updatePrunablesRemove filters from prunable layers based on importance scores (Seit R2022a)
updateScoreCompute and accumulate Taylor-based importance scores for pruning (Seit R2022a)
dlnetworkDeep learning neural network (Seit R2019b)
compressNetworkUsingProjectionCompress neural network using projection (Seit R2022b)
neuronPCAPrincipal component analysis of neuron activations (Seit R2022b)
unpackProjectedLayersUnpack projected layers of neural network (Seit R2023b)
ProjectedLayerCompressed neural network layer using projection (Seit R2023b)
gruProjectedLayerGated recurrent unit (GRU) projected layer for recurrent neural network (RNN) (Seit R2023b)
lstmProjectedLayerLong short-term memory (LSTM) projected layer for recurrent neural network (RNN) (Seit R2022b)
dlquantizerQuantize a deep neural network to 8-bit scaled integer data types (Seit R2020a)
dlquantizationOptionsOptions for quantizing a trained deep neural network (Seit R2020a)
calibrateSimulate and collect ranges of a deep neural network (Seit R2020a)
quantizeQuantize deep neural network (Seit R2022a)
validateQuantize and validate a deep neural network (Seit R2020a)
quantizationDetailsDisplay quantization details for a neural network (Seit R2022a)
estimateNetworkMetricsEstimate network metrics for specific layers of a neural network (Seit R2022a)
equalizeLayersEqualize layer parameters of deep neural network (Seit R2022b)

Apps

Deep Network QuantizerQuantize deep neural network to 8-bit scaled integer data types (Seit R2020a)

Themen

Pruning

Projektion und Wissensdestillation

Quantisierung

Quantisierung für GPU-Ziel

Quantisierung für FPGA-Ziel

Quantisierung für CPU-Ziel