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 で導入