メインコンテンツ

genFunction

(削除予定) 浅層ニューラル ネットワークのシミュレーション用の MATLAB 関数の生成

genFunction は将来のリリースで削除される予定です。詳細については、Transition Legacy Neural Network Code to dlnetwork Workflowsを参照してください。

コードの更新に関するアドバイスについては、バージョン履歴を参照してください。

説明

この関数は、浅層ニューラル ネットワークのシミュレーション用の MATLAB® 関数を生成します。genFunction は、畳み込みネットワークや LSTM ネットワークなどの深層学習ネットワークをサポートしていません。深層学習用のコード生成の詳細は、コード生成と深層ニューラル ネットワークの展開を参照してください。

genFunction(net,pathname) は、すべての設定、重みとバイアスの値、モジュール関数、計算が 1 つのファイルに含まれる、ニューラル ネットワークのシミュレーション用の完全にスタンドアロンの MATLAB 関数を生成します。結果は、スタンドアロンの MATLAB 関数ファイルになります。この関数を MATLAB Compiler™ ツールおよび MATLAB Coder™ ツールで使用することもできます。

genFunction(___,'MatrixOnly','yes') は既定の cell/行列の表記法をオーバーライドし、代わりに MATLAB Coder ツールと互換性のある行列引数のみを使用する関数を生成します。静的ネットワークの場合、行列の列は独立したサンプルとして解釈されます。動的ネットワークの場合、行列の列は一連のタイム ステップとして解釈されます。既定値は 'no' です。

genFunction(___,'ShowLinks','no') は生成されたヘルプとソース コードへのリンクを表示する既定の動作を無効にします。既定値は 'yes' です。

すべて折りたたむ

この例では、静的ニューラル ネットワークから MATLAB 関数と MEX 関数を作成する方法を説明します。

まず、静的ネットワークの学習を行い、学習データに対する出力を計算します。

[x,t] = bodyfat_dataset;
bodyfatNet = feedforwardnet(10);
bodyfatNet = train(bodyfatNet,x,t);
y = bodyfatNet(x);

次に、MATLAB 関数の生成とテストを行います。その後、新しい関数は、mcc で共有/ダイナミック リンク ライブラリにコンパイルされます。

genFunction(bodyfatNet,'bodyfatFcn');
y2 = bodyfatFcn(x);
accuracy2 = max(abs(y-y2))
mcc -W lib:libBodyfat -T link:lib bodyfatFcn

次に、行列引数のみ (cell 配列は対象外) をサポートする MATLAB 関数の別のバージョンを生成し、その関数をテストします。MATLAB Coder ツール codegen を使用して MEX 関数を生成し、同様にテストします。

genFunction(bodyfatNet,'bodyfatFcn','MatrixOnly','yes');
y3 = bodyfatFcn(x);
accuracy3 = max(abs(y-y3))
 
x1Type = coder.typeof(double(0),[13 Inf]); % Coder type of input 1
codegen bodyfatFcn.m -config:mex -o bodyfatCodeGen -args {x1Type}
y4 = bodyfatodeGen(x);
accuracy4 = max(abs(y-y4))

入力引数

すべて折りたたむ

ニューラル ネットワーク。ネットワーク オブジェクトとして指定します。

例: net = feedforwardnet(10);

生成された関数ファイルの場所と名前。文字列として指定します。ファイル名拡張子 .m を指定しない場合、自動的に追加されます。ファイルのパスを指定しない場合は、現在の作業フォルダーが既定の場所になります。

例: 'myFcn.m'

データ型: char

拡張機能

すべて展開する

バージョン履歴

R2013b で導入

すべて折りたたむ