Main Content

cnncodegen

ARM Mali GPU をターゲットとする深層学習ネットワークのコードの生成

説明

cnncodegen(net,'targetlib','arm-compute-mali') は、Mali GPU 用の ARM® Compute Library を使用して、指定されたネットワーク オブジェクトの C++ コードを生成します。

GPU Coder™ 製品と GPU Coder Interface for Deep Learning が必要です。

cnncodegen(net,'targetlib','arm-compute-mali',targetparams) は、Mali GPU 用の ARM Compute Library と追加のコード生成オプションを使用して、指定されたネットワーク オブジェクトの C++ コードを生成します。

すべて折りたたむ

cnncodegen を使用して、ARM Mali グラフィックス プロセッサに展開する事前学習済みのネットワーク用の C++ コードを生成します。

関数 googlenet (Deep Learning Toolbox) を使用して事前学習済みの GoogLeNet モデルを取得します。この関数には Deep Learning Toolbox™ Model for GoogLeNet Network が必要です。このサポート パッケージをまだインストールしていない場合は、この関数によりダウンロード リンクが提供されます。あるいは、https://www.mathworks.com/matlabcentral/fileexchange/64456-deep-learning-toolbox-model-for-googlenet-networkを参照してください。

net = googlenet;

cnncodegen を使用して、'targetlib''arm-compute-mali' に設定してコードを生成します。既定では、コード ジェネレーターは ARM のバージョン '19.05' をターゲットにします。別のバージョンの Compute Library をターゲットにするには、'ArmComputeVersion' パラメーターを使用します。

cnncodegen(net,'targetlib','arm-compute-mali'...
,'targetparams',struct('ArmComputeVersion','19.02'));
------------------------------------------------------------------------
Compilation suppressed: generating code only.
------------------------------------------------------------------------
### Codegen Successfully Generated for arm device

コード ジェネレーターは .cpp とヘッダー ファイルを '/pwd/codegen' フォルダーに生成します。DAG ネットワークは CnnMain と呼ばれる C++ クラスとして生成され、87 層のクラスの配列を含んでいます。コード ジェネレーターは、畳み込み層とバッチ正規化層のレイヤー フュージョン最適化で層の数を減らします。このクラスの setup() メソッドはハンドルを設定し、各層のオブジェクトにリソースを割り当てます。predict() メソッドはネットワークで 87 層それぞれの予測を呼び出します。cleanup() メソッドは、各層のオブジェクトに割り当てられたすべてのメモリとシステム リソースを解放します。ネットワークの畳み込み層に対するすべてのバイナリの重み (cnn_**_w) とバイアス ファイル (cnn_**_b) は codegen フォルダーに保存されます。

ライブラリをビルドするには、生成されたコードを ARM ターゲット プラットフォームに移動し、生成された makefile cnnbuild_rtw.mk を使用します。

入力引数

すべて折りたたむ

事前学習済みの SeriesNetwork または DAGNetwork オブジェクト。

メモ

cnncodegendlnetwork オブジェクトはサポートしていません。

ARM Compute Library の固有のパラメーター。次の表に示すフィールドを含む 11 列の構造体として指定します。

フィールド

説明

ArmComputeVersion

ターゲット ハードウェアの ARM Compute Library のバージョン。'19.02' または '19.05' として指定します。既定値は '19.05' です。ArmComputeVersion'19.05' よりも新しいバージョンに設定すると、ArmComputeVersion'19.05' に設定されます。

バージョン履歴

R2017b で導入

すべて展開する