BP训练网络程序
%归一化处理
%------------------------------------
for i=1:665%点数
pn(i,1)=0.1+(p(i,1)-min(p(:,1)))/(max(p(:,1))-min(p(:,1)))*(0.9-0.1);
pn(i,2)=0.1+(p(i,2)-min(p(:,2)))/(max(p(:,2))-min(p(:,2)))*(0.9-0.1);
end
for i=1:size(t)
tn(i)=0.1+(t(i)-min(t(:)))/(max(t(:))-min(t(:)))*(0.9-0.1);
end
pn=pn';
%------------------------------------
%建立bp网络,设置多个神经元的训练,可根据不同神经元的训练结果自己再设置
s=72;%设置隐含层神经元个数
res=1:10;
for i=1:size(s)
net=newff(minmax(pn),[s(i),1],{'tansig','logsig'},'trainlm');
inputWeights=net.IW{1,1};inputbias=net.b{1};layerWeights=net.IW{1,1};layerbias=net.b{2};
net.trainParam.show=900;net.trainParam.lr=0.02;net.trainParam.mc=0.9;net.trainparam.epochs=300;
net.trainparam.goal=0.00001;
net=train(net,pn,tn);
yn=sim(net,pn);
error=yn-tn;
res(i)=norm(error);
end
y=yn;y=min(t(:))+(yn-0.1)/(0.9-0.1)*(max(t)-min(t));
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载