MATLABは、ニューラルネットワークツールボックスで1つ以上の伝達関数タイプを持つレイヤーを許可しません。だから、私は2つの隠れた層を作りたいと思っています。一つは双曲線正接伝達関数で、もう一つはrbfニューロンでです。MATLABで隠れ層ニューロンの出力値にアクセスする方法は?
しかし、出力レイヤーのために最初の隠れ層の出力を直接渡す必要があります。私は第2隠れ層の出力を変更することを考えているので、最初の隠れ層の出力と等しくなります。そのためには、隠れたレイヤーの出力値にアクセスする必要があります。 私はtraingd
機能を開けていると私は私がしたいことは、このコードの一部であると思う:私が見つけ
for epoch=0:param.epochs
% Stopping Criteria
if isMainWorker
current_time = etime(clock,startTime);
[userStop,userCancel] = nntraintool('check');
if userStop, tr.stop = 'User stop.'; calcNet = best.net;
elseif userCancel, tr.stop = 'User cancel.'; calcNet = original_net;
elseif (perf <= param.goal), tr.stop = 'Performance goal met.'; calcNet = best.net;
elseif (epoch == param.epochs), tr.stop = 'Maximum epoch reached.'; calcNet = best.net;
elseif (current_time >= param.time), tr.stop = 'Maximum time elapsed.'; calcNet = best.net;
elseif (gradient <= param.min_grad), tr.stop = 'Minimum gradient reached.'; calcNet = best.net;
elseif (val_fail >= param.max_fail), tr.stop = 'Validation stop.'; calcNet = best.net;
end
% Training record & feedback
tr = nntraining.tr_update(tr,[epoch current_time perf vperf tperf gradient val_fail]);
statusValues = [epoch,current_time,best.perf,gradient,val_fail];
nn_train_feedback('update',archNet,rawData,calcLib,calcNet,tr,status,statusValues);
stop = ~isempty(tr.stop);
end
% Stop
if isParallel, stop = labBroadcast(mainWorkerInd,stop); end
if stop, return, end
% Gradient Descent
if isMainWorker
dWB = param.lr * gWB;
WB = WB + dWB;
end
calcNet = calcLib.setwb(calcNet,WB);
[perf,vperf,tperf,gWB,gradient] = calcLib.perfsGrad(calcNet);
% Validation
if isMainWorker
[best,tr,val_fail] = nntraining.validation(best,tr,val_fail,calcNet,perf,vperf,epoch);
end
end
偏見とシナプスが更新されますが、私はどこ見つけることができていませんでしたニューロンの出力の値が設定される。誰か助けてくれますか?
感謝を!本当に私はそれをしていない。しかし、あなたの答えは役に立ちました。このドキュメントでは、どのレイヤが互いにどのように接続され、どのレイヤが入力と出力に接続されるかを説明しています。 –