Main Content

coder.ARMNEONConfig

ARM Compute Library を使用した深層学習コード生成用の構成パラメーター

説明

coder.ARMNEONConfig オブジェクトには、codegen がディープ ニューラル ネットワークの C++ コードの生成に使用する ARM® Compute Library とターゲット固有のパラメーターが含まれています。

コード生成に coder.ARMNEONConfig オブジェクトを使用するには、そのオブジェクトを、codegen に渡すコード生成構成オブジェクトの DeepLearningConfig プロパティに割り当てます。

作成

関数 coder.DeepLearningConfig でターゲット ライブラリを 'arm-compute' と設定して、ARM NEON 構成オブジェクトを作成します。

プロパティ

すべて展開する

ターゲット ハードウェアで使用される ARM Compute Library のバージョン。文字ベクトルまたは string スカラーとして指定します。ArmComputeVersion'20.02.1' よりも新しいバージョンに設定すると、ArmComputeVersion'20.02.1' に設定されます。

ターゲット ハードウェアでサポートされる ARM アーキテクチャ。文字ベクトルまたは string スカラーとして指定します。ターゲット ハードウェアの ARM Compute Library のアーキテクチャと同じアーキテクチャを指定しなければなりません。

次の場合は ARMArchitecture の指定が必須です。

  • ハードウェア サポート パッケージを使用していない (コード生成構成オブジェクトの Hardware プロパティが空)。

  • ハードウェア サポート パッケージを使用しているがコード生成しか行わない。

サポートされる層における推論の計算の精度を指定します。32 ビットの浮動小数点数で推論を実行する場合は、'fp32' を使用します。8 ビット整数の場合、'int8' を使用します。既定値は 'fp32' です。

キャリブレーション データを含む MAT ファイルの場所。既定値は '' です。このオプションは DataType'int8' に設定されている場合にのみ適用されます。

深層畳み込みニューラル ネットワークの量子化を実行する場合、関数 calibrate (Deep Learning Toolbox) はネットワークに学習させ、畳み込み層と全結合層における重みとバイアスのダイナミック レンジ、およびネットワークのすべての層における活性化のダイナミック レンジを収集します。量子化されたネットワークのコードを生成するには、関数 calibrate の結果を MAT ファイルに保存し、その MAT ファイルの場所をこのパラメーターを使用してコード ジェネレーターに指定します。詳細については、Code Generation for Quantized Deep Learning Networksを参照してください。

ターゲット ライブラリの名前。文字ベクトルとして指定します。

すべて折りたたむ

関数 coder.loadDeepLearningNetwork を使用して squeezenet (Deep Learning Toolbox) オブジェクトを読み込むエントリポイント関数 squeezenet を作成します。

function out = squeezenet_predict(in)

persistent mynet;
if isempty(mynet)
    mynet = coder.loadDeepLearningNetwork('squeezenet', 'squeezenet');
end

out = predict(mynet,in);

スタティック ライブラリ生成用の coder.config 構成オブジェクトを作成します。

cfg = coder.config('lib');

ターゲット言語を C++ に設定します。ソース コードの生成のみを行うように指定します。

cfg.TargetLang = 'C++';
cfg.GenCodeOnly=true;

coder.ARMNEONConfig 深層学習構成オブジェクトを作成します。このオブジェクトを cfg 構成オブジェクトの DeepLearningConfig プロパティに割り当てます。

dlcfg = coder.DeepLearningConfig('arm-compute');
dlcfg.ArmArchitecture = 'armv8';
dlcfg.ArmComputeVersion = '20.02.1';
cfg.DeepLearningConfig = dlcfg;

関数 codegen-config オプションを使用して cfg 構成オブジェクトを指定します。関数 codegen は、MATLAB® 関数入力のサイズ、クラス、実数/複素数を決定しなければなりません。-args オプションを使用して、エントリポイント関数への入力のサイズを指定します。

codegen -args {ones(227,227,3,'single')} -config cfg squeezenet_predict

codegen コマンドは生成されたすべてのファイルを codegen フォルダーに入れます。このフォルダーには、エントリポイント関数 squeezenet_predict.cpp の C++ コード、ヘッダー、畳み込みニューラル ネットワーク (CNN) の C++ クラス定義が含まれるソース ファイル、重み、バイアス ファイルが含まれます。

バージョン履歴

R2019a で導入