2

matlab でニューラル ネットワークを使用して XOR を実装するには、このコードを修正する必要があります。しかし、入力レイヤーから最初のレイヤーに入力ウェイトを設定できません。ネットワークには、それぞれ 2、2、1 ニューロンの入力層、隠れ層、出力層があります。誰かがこれで私を助けることができますか?

net=network;
net.numInputs = 1;
net.inputs{1}.size = 2;
net.numLayers = 2;
net.layers{1}.size = 2;
net.layers{2}.size = 1;
net.inputConnect(1) = 1;
net.layerConnect(2, 1) = 1;
net.outputConnect(2) = 1;
net.targetConnect(2) = 1;
net.layers{1}.transferFcn = 'logsig';%>> net.layers{2}.transferFcn = 'purelin';
net.layers{2}.transferFcn = 'logsig';
net.biasConnect = [ 1 ; 1];
net.layers{1}.initFcn = 'initwb';
net.layers{2}.initFcn = 'initwb';
net.inputWeights={1 1;1 1};%ask this. error is not explanatory. probably syntax.
net.biases{1}={-1.5 -0.5};
net.biases{2}=-0.5;
net.layerWeights{2,1}={-2 1};
P=[0 1 0 1;0 0 1 1];
T=[0 1 1 0];
net.initFcn = 'initlay';
net = init(net);
net.adaptFcn = 'adaptwb';
net.inputWeights{1,1}.learnFcn = 'learnp';
net.biases{1}.learnFcn = 'learnp';
net.adaptParam.passes =3;
net.performFcn = 'mse';
y = sim(net,P)
4

1 に答える 1

0

doc network私に言います:

net.inputConnect(i,j) が 1 の場合、net.inputWeights{i,j} は、入力 j からレイヤー i への重みを定義する構造体です。

したがって、セル配列を設定する代わりに、次のように、入力ノードと第 1 層ノードの組み合わせごとに の要素net.inputWeights設定する必要があります。net.inputWeights

net.inputWeights{1,1} = weight11; % input1 node 1
net.inputWeigtts{1,2} = weight12; % input1 node 2
...
于 2012-06-20T07:40:10.700 に答える