Main Content

coder.DeepLearningConfig

深層学習コード生成構成オブジェクトを作成する

説明

deepLearningCfg = coder.DeepLearningConfig(TargetLibrary = targetlib) は、深層ニューラル ネットワークのコードを生成するために codegen で使用されるライブラリ固有のパラメーターが含まれている深層学習構成オブジェクトを作成します。この深層学習構成オブジェクトを、coder.config を使用して作成されたコード構成オブジェクトの DeepLearningConfig プロパティに割り当てます。-config オプションを使用して、コード構成オブジェクトを関数 codegen に渡します。

すべて折りたたむ

コード構成パラメーターを設定し、ResNet-50 系列ネットワークの C++ コードを生成します。生成されたコードは Intel® MKL-DNN 深層学習ライブラリを使用します。

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

function out = resnet_predict(in)

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

out = predict(mynet,in);

永続的なオブジェクトは、入力で predict メソッドを呼び出す関数のその後の呼び出し中にネットワーク オブジェクトの再構成と再読み込みを回避します。

事前学習済みの ResNet-50 ネットワークの入力層は、サイズ 224x224x3 のイメージを受け入れます。グラフィックス ファイルから入力イメージを読み取り、224x224 にサイズ変更するには、次のコード行を使用します。

in = imread('peppers.png');
in = imresize(in,[224,224]);

MEX コード生成用の coder.config 構成オブジェクトを作成し、ターゲット言語を C++ に設定します。構成オブジェクトで、targetlib を使用して DeepLearningConfig'mkldnn' として設定します。関数 codegen-config オプションを使用して、このコード構成オブジェクトを渡します。関数 codegen は、MATLAB® 関数入力のサイズ、クラス、実数/複素数を決定しなければなりません。-args オプションを使用して、エントリポイント関数への入力のサイズを指定します。

cfg = coder.config('mex');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig(TargetLibrary = 'mkldnn'); 
codegen -args {ones(224,224,3,'single')} -config cfg resnet_predict;

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

入力引数

すべて折りたたむ

深層学習コード生成のターゲット ライブラリ。次の表のいずれかの値として指定します。

説明
'none'

サードパーティのライブラリを使用しないコード生成用。

'arm-compute'

ARM® Compute Library を使用するコード生成用。

'mkldnn'

Intel Math Kernel Library for Deep Neural Networks (Intel MKL-DNN) を使用するコード生成用。

'cmsis-nn'

Common Microcontroller Software Interface Standard - Neural Network (CMSIS-NN) ライブラリ。

MATLAB Coder™ Interface for Deep Learning が必要です。

'cudnn'

CUDA® Deep Neural Network library (cuDNN) を使用するコード生成用。

このオプションには GPU Coder™ が必要です。

'tensorrt'

高性能な深層学習推論オプティマイザーおよびランタイム ライブラリである NVIDIA® TensorRT を利用するコード生成用。

このオプションには GPU Coder が必要です。

出力引数

すべて折りたたむ

入力引数で指定したターゲット ライブラリに基づいた構成オブジェクト。このオブジェクトには、コード生成中に使用されるライブラリ固有のパラメーターが含まれます。

ターゲット ライブラリ深層学習構成オブジェクト
'none'DeepLearningCodeConfig 構成オブジェクトを作成します。
'arm-compute'ARMNEONConfig 構成オブジェクトを作成します。
'mkldnn'MklDNNConfig 構成オブジェクトを作成します。
'cmsis-nnCMSISNNConfig 構成オブジェクトを作成します。
'cudnn'CuDNNConfig 構成オブジェクトを作成します。
'tensorrt'TensorRTConfig 構成オブジェクトを作成します。

バージョン履歴

R2018b で導入