メインコンテンツ

prune

サイズがゼロのニューラル入力、層、出力の削除

構文

[net,idxInput,idxLayer,idxOutput] = prune(net)

説明

この関数は、サイズがゼロの入力、層、出力をネットワークから削除します。これにより、ネットワークの入力や出力が少なくなる可能性がありますが、サイズがゼロの入力と出力は何の情報も伝えないため、同じ処理が実装されます。

この簡略化の 1 つの用途として、サイズがゼロの信号がサポートされていない場合に、サイズがゼロのサブオブジェクトをもつ Simulink® 用のネットワークを準備することが挙げられます。

コンパニオン関数 prunedata を使用すると、変換されたネットワークとの整合性を維持するためにデータを刈り込むことができます。

[net,idxInput,idxLayer,idxOutput] = prune(net) は、ニューラル ネットワークを受け取り、次を返します。

net

サイズがゼロのサブオブジェクトが削除された同一のネットワーク

idxInput

刈り込まれた入力のインデックス

idxLayer

刈り込まれた層のインデックス

idxOutput

刈り込まれた出力のインデックス

ここでは、外部入力を 1 つもち、出力からフィードバックされる 2 番目の入力をもつ NARX 動的ネットワークを作成します。

net = narxnet(20);
view(net)

その後、50 個のタイムステップを使用して、単一のランダム時系列問題でこのネットワークに学習させます。外部入力は何も要素をもちません。

X = nndata(0,1,50);
T = nndata(1,1,50);
[Xs,Xi,Ai,Ts] = preparets(net,X,{},T);
net = train(net,Xs,Ts);

その後、Simulink ブロック線図を生成してその入力と層状態を初期化する前に、ネットワークとデータを刈り込みます。

[net2,idxInput,idxLayer,idxOutput] = prune(net);
view(net2)
[Xs2,Xi2,Ai2,Ts2] = prunedata(net,idxInput,idxLayer,idxOutput,Xs,Xi,Ai,Ts);
[sysName,netName] = gensim(net2);
setsiminit(sysName,netName,net2,Xi2,Ai2);

バージョン履歴

R2010b で導入