Main Content

gensim

浅いニューラル ネットワークのシミュレーション用の Simulink ブロックの生成

説明

gensim(net,st) は、サンプリング時間 st でニューラル ネットワーク net のシミュレーションを行うブロックが含まれる Simulink® システムを作成します。

net に入力または層の遅延がない (net.numInputDelaysnet.numLayerDelays の両方が 0 である) 場合、st に –1 を使用して、連続的にサンプリングを行うネットワークを取得できます。

gensim は、畳み込みネットワークや LSTM ネットワークなどの深層学習ネットワークをサポートしていません。深層学習用のコード生成の詳細は、深層学習のコード生成を参照してください。

gensim の詳細については、MATLAB コマンド プロンプトで help network/gensim と入力してください。

すべて折りたたむ

この例では、フィードフォワード ネットワーク用の Simulink ブロックを生成する方法を示します。

単純な近似データ セットのデータを使用してフィードフォワード ネットワークを作成し、Simulink ブロックを生成します。

[x,t] = simplefit_dataset;
net = feedforwardnet(10);
net = train(net,x,t)
gensim(net)

この例では、NARX ネットワーク用の Simulink ブロックを生成する方法を示します。

NARX ネットワークを作成します。

[x,t] = simplenarx_dataset;
net = narxnet(1:2,1:2,20);
view(net)
[xs,xi,ai,ts] = preparets(net,x,{},t);
net = train(net,xs,ts,xi,ai);
y = net(xs,xi,ai);

ネットワークを閉ループに変換します。

net = closeloop(net);
view(net)

データを準備し、ネットワークの閉ループ応答のシミュレーションを行います。

[xs,xi,ai,ts] = preparets(net,x,{},t);
y = net(xs,xi,ai);

ネットワークを、ワークスペースとの入出力端子をもつ Simulink システムに変換します。

[sysName,netName] = gensim(net,'InputMode','Workspace',...
	'OutputMode','WorkSpace','SolverMode','Discrete');

遅延状態を初期化します。これは、MATLAB® と同じ出力を得るための重要なステップであることに注意してください。

setsiminit(sysName,netName,net,xi,ai,1);

ワークスペースでモデル入力 X1 を定義し、プログラムでシステムをシミュレートします。

x1 = nndata2sim(xs,1,1);
out = sim(sysName,'ReturnWorkspaceOutputs','on','StopTime',num2str(x1.time(end)));
ysim = sim2nndata(out.y1);

入力引数

すべて折りたたむ

入力ネットワーク。ネットワーク オブジェクトとして指定します。ネットワーク オブジェクトを作成するには、feedforwardnetnarxnet などを使用します。

サンプル時間を -1 以外の値として指定します。詳細については、サンプル時間の指定 (Simulink)を参照してください。

バージョン履歴

R2006a より前に導入

参考