[求助]关于基于matlab的BP网络的问题
小弟正在做这方面的毕业设计,由于是新手,只是简单的了解一些。这是我做的原始数据的量化和选取的程序:
clear all;
load sj.txt
u=zeros(400,10);
u(:,1)=sj(:,1);
u(:,2)=sj(:,4);
u(:,3)=sj(:,6);
u(:,4)=sj(:,7);
u(:,5)=sj(:,9);
u(:,6)=sj(:,10);
u(:,7)=sj(:,12);
u(:,8)=sj(:,6);
u(:,9)=sj(:,8);
u(:,10)=sj(:,9);
ua=zeros(10,400);
maxu=max(u);
minu=min(u);
for i=1:10
for j=1:400
ua(i,j)=(u(j,i)-minu(1,i))/(maxu(1,i)-minu(1,i));
end
end
p=zeros(7,399);
t=zeros(3,399);
p(1,:)=ua(1,1:399);
p(2,:)=ua(2,1:399);
p(3,:)=ua(3,1:399);
p(4,:)=ua(4,1:399);
p(5,:)=ua(5,1:399);
p(6,:)=ua(6,1:399);
p(7,:)=ua(7,1:399);
t(1,:)=ua(8,2:400);
t(2,:)=ua(9,2:400);
t(3,:)=ua(10,2:400);
p=zeros(7,399) ;t=zeros(3,399)
p(1,:)=ua(1,1:399);
p(2,:)=ua(2,1:399);
p(3,:)=ua(3,1:399);
p(4,:)=ua(4,1:399);
p(5,:)=ua(5,1:399);
p(6,:)=ua(6,1:399);
p(7,:)=ua(7,1:399);
t(1,:)=ua(8,2:400);
t(2,:)=ua(9,2:400);
t(3,:)=ua(10,2:400);
原始数据
打开附件
请各位大虾帮忙,用几种方法训练函数(批梯度下降,动量批梯度,自适应修改学习,共轭梯度,及LM方法)的程序,小弟在这谢谢了 我的邮箱是: jiangsibo@hotmail.com
在次谢谢各位大虾,请帮帮小弟。 先输入你的训练样本矩阵P和T;
然后,P=P';T=T';
创建Elman网络(举例):net=newelm(minmax(P),,{'tansig','logsig'},'traingdx')
N为隐含层神经元数,可根据经验公式或试凑法求得。其他参数都可以变化。输入样本都要进行归一化。
然后训练网络:net.trainParam.epochs=1000;
net.trainParam.goal=1000;
net=train(P,T);
最后就可以测试了,比如:y=sim(net,p_test).
traingdx为自适应变学习步长法学习 我好像还没有读懂楼主的意思!<BR><BR> 楼主,你的txt文件我下不下来,所以不了解数据格式!~但个人的感觉是你这样的读数据的方法不可取!~可能得不到你所想要的数据!~
还有想跟2楼的系主任切磋一下,
net.trainParam.goal=1000;
这里的目标误差在数据做了归一化处理后能达到1000?我没想明白,呵呵
还有就是我们用elman神经网络的时候一般不做目标误差的指定!~
随便说说,表生气,重在切磋!~ <P>之前我看明白了,可是到 y=sim(net,p)这里不太明白,这个y是什么??<BR></P>
页:
[1]