Main Content

coder.DeepLearningConfig

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

説明

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

すべて折りたたむ

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

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

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'mkldnn' にして DeepLearningConfig を設定します。関数 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 で導入