我需要帮助纠正这段代码,用matlab中的神经网络实现异或。但是,我无法从输入层设置输入权重到第一层。该网络分别有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)
发布于 2012-06-20 07:40:10
doc network
告诉我:
如果net.inputConnect(i,j)为1,则net.inputWeights{i,j}是定义输入j到层i的权重的结构。
因此,与其为net.inputWeights
设置单元格数组,不如为输入节点和第一层节点的每个组合设置net.inputWeights
元素,如下所示:
net.inputWeights{1,1} = weight11; % input1 node 1
net.inputWeigtts{1,2} = weight12; % input1 node 2
...
https://stackoverflow.com/questions/11110942
复制相似问题