Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

量子化、投影、および枝刈り

量子化、投影、または枝刈りの実行による深層ニューラル ネットワークの圧縮

Deep Learning Toolbox™ を Deep Learning Toolbox Model Quantization Library サポート パッケージと共に使用し、以下を行うことで、深層ニューラル ネットワークのメモリ フットプリントの削減と計算要件の緩和を行います。

  • 1 次テイラー近似を使用して畳み込み層からフィルターを枝刈りします。その後、この枝刈りされたネットワークから、C/C++ コードまたは CUDA® コードを生成できます。

  • 層の活性化に対し、学習データの典型的なデータ セットを使用して主成分分析 (PCA) を実行して層を投影し、層の学習可能なパラメーターに対して線形投影を適用します。投影された深層ニューラル ネットワークのフォワード パスは、通常、ライブラリを使用せずに C/C++ コードを生成して組み込みハードウェアにネットワークを展開すると、より高速になります。

  • 層の重み、バイアス、および活性化を、低い精度にスケーリングされた整数データ型に量子化します。その後、この量子化ネットワークから、C/C++ コード、CUDA コード、または HDL コードを生成できます。

    このソフトウェアは、C/C++ および CUDA のコード生成のため、畳み込み層の重み、バイアス、および活性化を、8 ビットにスケーリングされた整数データ型に量子化することで、畳み込み深層ニューラル ネットワーク用のコードを生成します。この量子化は、関数 calibrate によって生成されたキャリブレーション結果ファイルを codegen (MATLAB Coder) コマンドに渡すことで行われます。

    コード生成では、関数 quantize によって生成された量子化済みの深層ニューラル ネットワークがサポートされません。

関数

すべて展開する

taylorPrunableNetworkNeural network suitable for compression using Taylor pruning (R2022a 以降)
forward学習用の深層学習ネットワーク出力の計算
predict推論用の深層学習ネットワーク出力の計算
updatePrunablesRemove filters from prunable layers based on importance scores (R2022a 以降)
updateScoreCompute and accumulate Taylor-based importance scores for pruning (R2022a 以降)
dlnetwork深層学習ニューラル ネットワーク
compressNetworkUsingProjectionCompress neural network using projection (R2022b 以降)
neuronPCAPrincipal component analysis of neuron activations (R2022b 以降)
unpackProjectedLayersUnpack projected layers of neural network (R2023b 以降)
ProjectedLayerCompressed neural network layer using projection (R2023b 以降)
gruProjectedLayerGated recurrent unit (GRU) projected layer for recurrent neural network (RNN) (R2023b 以降)
lstmProjectedLayerLong short-term memory (LSTM) projected layer for recurrent neural network (RNN) (R2022b 以降)
dlquantizerQuantize a deep neural network to 8-bit scaled integer data types (R2020a 以降)
dlquantizationOptionsOptions for quantizing a trained deep neural network (R2020a 以降)
calibrate深層ニューラル ネットワークのシミュレーションと範囲の収集 (R2020a 以降)
quantizeQuantize deep neural network (R2022a 以降)
validateQuantize and validate a deep neural network (R2020a 以降)
quantizationDetailsDisplay quantization details for a neural network (R2022a 以降)
estimateNetworkMetricsEstimate network metrics for specific layers of a neural network (R2022a 以降)
equalizeLayersEqualize layer parameters of deep neural network (R2022b 以降)

アプリ

ディープ ネットワーク量子化器Quantize deep neural network to 8-bit scaled integer data types (R2020a 以降)

トピック

枝刈り

投影と知識蒸留

量子化

GPU ターゲットの量子化

FPGA ターゲットの量子化

  • Quantize Network for FPGA Deployment (Deep Learning HDL Toolbox)
    Reduce the memory footprint of a deep neural network by quantizing the weights, biases, and activations of convolution layers to 8-bit scaled integer data types. This example shows how to use Deep Learning Toolbox Model Quantization Library and Deep Learning HDL Toolbox to deploy the int8 network to a target FPGA board.
  • Classify Images on FPGA Using Quantized Neural Network (Deep Learning HDL Toolbox)
    This example shows how to use Deep Learning HDL Toolbox™ to deploy a quantized deep convolutional neural network (CNN) to an FPGA. In the example you use the pretrained ResNet-18 CNN to perform transfer learning and quantization. You then deploy the quantized network and use MATLAB ® to retrieve the prediction results.
  • Classify Images on FPGA by Using Quantized GoogLeNet Network (Deep Learning HDL Toolbox)
    This example show how to use the Deep Learning HDL Toolbox™ to deploy a quantized GoogleNet network to classify an image. The example uses the pretrained GoogLeNet network to demonstrate transfer learning, quantization, and deployment for the quantized network. Quantization helps reduce the memory requirement of a deep neural network by quantizing weights, biases and activations of network layers to 8-bit scaled integer data types. Use MATLAB® to retrieve the prediction results.

CPU ターゲットの量子化

注目の例