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 Libraries が必要です。

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

コード ジェネレーターは、'/pwd/codegen' フォルダーに .cpp ファイルとヘッダー ファイルを生成します。DAG ネットワークは、87 個の層クラスから成る配列を含む CnnMain という名前の C++ クラスとして生成されます。コード ジェネレーターは畳み込み層とバッチ正規化層のレイヤー フュージョン最適化で層の数を削減します。このクラスの 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 で導入

すべて展開する