coder.ARMNEONConfig
ARM Compute Library を使用した深層学習コード生成用の構成パラメーター
説明
coder.ARMNEONConfig
オブジェクトには、codegen
がディープ ニューラル ネットワークの C++ コードの生成に使用する ARM® Compute Library とターゲット固有のパラメーターが含まれています。
コード生成に coder.ARMNEONConfig
オブジェクトを使用するには、そのオブジェクトを、codegen
に渡すコード生成構成オブジェクトの DeepLearningConfig
プロパティに割り当てます。
作成
関数 coder.DeepLearningConfig
でターゲット ライブラリを 'arm-compute'
と設定して、ARM NEON 構成オブジェクトを作成します。
プロパティ
ArmComputeVersion
— ARM Compute Library のバージョン
'20.02.1' (既定値) | '19.05'
ターゲット ハードウェアで使用される ARM Compute Library のバージョン。文字ベクトルまたは string スカラーとして指定します。ArmComputeVersion
を '20.02.1'
よりも新しいバージョンに設定すると、ArmComputeVersion
は '20.02.1'
に設定されます。
ArmArchitecture
— ターゲット ハードウェアでサポートされる ARM アーキテクチャ
'armv8' | 'armv7'
ターゲット ハードウェアでサポートされる ARM アーキテクチャ。文字ベクトルまたは string スカラーとして指定します。ターゲット ハードウェアの ARM Compute Library のアーキテクチャと同じアーキテクチャを指定しなければなりません。
次の場合は ARMArchitecture
の指定が必須です。
ハードウェア サポート パッケージを使用していない (コード生成構成オブジェクトの
Hardware
プロパティが空)。ハードウェア サポート パッケージを使用しているがコード生成しか行わない。
DataType
— 推論の計算の精度
'fp32'
(既定値) | 'int8'
サポートされる層における推論の計算の精度を指定します。32 ビットの浮動小数点数で推論を実行する場合は、'fp32'
を使用します。8 ビット整数の場合、'int8'
を使用します。既定値は 'fp32'
です。
CalibrationResultFile
— キャリブレーション MAT ファイルの場所
''
(既定値) | 文字ベクトル | string スカラー
キャリブレーション データを含む MAT ファイルの場所。既定値は ''
です。このオプションは DataType
が 'int8'
に設定されている場合にのみ適用されます。
量子化を実行する場合、関数 calibrate
(Deep Learning Toolbox) はネットワークに学習させ、畳み込み層と全結合層における重みとバイアスのダイナミック レンジ、およびネットワークのすべての層における活性化のダイナミック レンジを収集します。最適化されたネットワークのコードを生成するには、関数 calibrate
の結果を MAT ファイルに保存し、その MAT ファイルの場所をこのプロパティを使用してコード ジェネレーターに指定します。詳細については、深層学習ネットワークの int8 コードの生成を参照してください。
TargetLibrary
— ターゲット ライブラリ名
'arm-compute'
ターゲット ライブラリの名前。文字ベクトルとして指定します。
例
SqueezeNet ネットワークの C++ コード生成用の構成パラメーターの指定
関数 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++ コード、ヘッダー、ニューラル ネットワークの C++ クラス定義が含まれるソース ファイル、重み、バイアス ファイルが含まれます。
バージョン履歴
R2019a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)