
BP神经网络神经元个数求助
新人写了个简单的BP神经网络,现在已经确定输入层神经元个数是5个,输出层是7个,请问怎么在程序中加入这一条件?源程序如下:clearallP=load('e:/a.txt...
新人写了个简单的BP神经网络,现在已经确定输入层神经元个数是5个,输出层是7个,请问怎么在程序中加入这一条件?
源程序如下:
clear all
P=load('e:/a.txt')';
T=load('e:/b.txt')';
[Pnorm, PPs] = mapminmax(P);
[Tnorm,TPs]=mapminmax(T);
HideLayerNode=[17 7];
HideLayerTF = {'tansig' 'logsig' 'purelin'};
TrainFcn = 'trainlm';
net = newff(Pnorm, Tnorm, HideLayerNode, HideLayerTF, TrainFcn);
net.trainParam.epochs = 10000;
net.trainParam.goal = 1e-4;
net.trainParam.lr = 0.01;
for i = 1:10
net = train(net,Pnorm,Tnorm);
end
testP = [3300 270 60 300 460]';
testPnorm = mapminmax('apply', testP, PPs);
testTnorm = sim(net, testPnorm);
testT = mapminmax('reverse', testTnorm, TPs) 展开
源程序如下:
clear all
P=load('e:/a.txt')';
T=load('e:/b.txt')';
[Pnorm, PPs] = mapminmax(P);
[Tnorm,TPs]=mapminmax(T);
HideLayerNode=[17 7];
HideLayerTF = {'tansig' 'logsig' 'purelin'};
TrainFcn = 'trainlm';
net = newff(Pnorm, Tnorm, HideLayerNode, HideLayerTF, TrainFcn);
net.trainParam.epochs = 10000;
net.trainParam.goal = 1e-4;
net.trainParam.lr = 0.01;
for i = 1:10
net = train(net,Pnorm,Tnorm);
end
testP = [3300 270 60 300 460]';
testPnorm = mapminmax('apply', testP, PPs);
testTnorm = sim(net, testPnorm);
testT = mapminmax('reverse', testTnorm, TPs) 展开
2个回答
展开全部
你用的是newff函数的新版用法,不需要手动设置输入、输出神经元数目,只需要设置隐层神经元即可。从你的HideLayerNode=[17 7];可以看出,你这是双隐层网络,第一个隐层是17个神经元,第二层隐是7神经元。
net = newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl}, BTF,BLF,PF,IPF,OPF,DDF)
Size of ith layer, for N-1 layers, default = [ ].
(Output layer size SN is determined from T.)
输出层神经元数量由样本维数决定。
net = newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl}, BTF,BLF,PF,IPF,OPF,DDF)
Size of ith layer, for N-1 layers, default = [ ].
(Output layer size SN is determined from T.)
输出层神经元数量由样本维数决定。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询