matlab中的神经网络:如何指定输入权重

时间:2012-06-19 23:31:37

标签: neural-network matlab

我需要帮助纠正此代码,以便在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)

1 个答案:

答案 0 :(得分:0)

doc network告诉我:

  

如果net.inputConnect(i,j)为1,那么net.inputWeights {i,j}是一个结构   从输入j定义第i层的权重。

因此,不应为net.inputWeights设置单元格数组,而应为每个输入和第一层节点组合设置 net.inputWeights的元素,如下所示:< / p>

net.inputWeights{1,1} = weight11; % input1 node 1
net.inputWeigtts{1,2} = weight12; % input1 node 2
...
相关问题