我正在使用MATLAB R2014a,我想创建以下神经网络:
使用以下代码:
net=network;
net.numInputs=2;
net.numLayers=3;
net.inputConnect=[1 1;0 0;0 0];
net.layerConnect=[0 0 0;1 0 0;0 1 0];
net.layers{1}.size=2;
net.layers{2}.size=4;
net.layers{3}.size=2;
net.outputConnect=[0 0 1];
net.layers{:}.transferFcn = 'hardlim';
net.trainFcn = 'trainscg';
net.inputs{1}.size=4;
net.inputs{2}.size=4;
我收到了这个网络:
现在,当我想用这段代码指定输入权重时:
net.inputWeights=[1 1;0 0; 0 0];
或者这个:
net.inputWeights{1,1}=1;
我有这个错误:
Error using network/subsasgn>network_subsasgn (line 267)
You must assign to subobject properties individually[.][3]
Error in network/subsasgn (line 13)
net = network_subsasgn(net,subscripts,v,netname);
使用net.IW=[1 1;0 0; 0 0];
,错误将是:
Error using network/subsasgn>network_subsasgn (line 553)
net.IW must be a 3-by-2 cell array.
Error in network/subsasgn (line 13)
net = network_subsasgn(net,subscripts,v,netname);
我还尝试了net=configure(net,x,t)
和net = train(net,x,t)
函数,例如:x=[1 2 3 4]; t=[1.5 2.5 3.5 4.5];
但我收到了configure
函数的错误:
Error using network/configure (line 111)
The numbers of input signals and networks inputs do not match.
和train
的这一个:
Error using network/train (line 320)
Number of inputs does not match net.numInputs.
那么,如何完成此自定义神经网络以获取连接权重等详细信息?
提前致谢
答案 0 :(得分:0)
最后我用以下代码解决了问题:
当我使用我在问题中解释的代码时,无法在手动模式下更改连接的权重。但是使用这段代码(代码I'在我的回答中显示),我可以更改权重和其他设置而不会出现任何错误。 feedforwardnet
是MATLAB中的正确功能。
net=feedforwardnet([2,4,2]);
net.numInputs=2;
net.inputConnect=[1 1;0 0;0 0;0 0];
net.layerConnect=[0 0 0 0;1 0 0 0;0 1 0 0;0 0 1 0];
net.inputs{1}.size=1;
net.inputs{2}.size=1;
net.IW{1,1}=[1;0];
net.IW{1,2}=[0;1];
net.LW{2,1}=[-1 1;1 -1;-1 -1;1 1];
net.LW{3,2}=[1 1 0 0;0 0 1 1];
view(net);