matlab BP神经网络训练程序求解释

程序是这样的,懂的高手看我理解的对不对,再解释一下我没理解的部分是什么,应该不太难
p=e'; %训练样本的输入数据
t=v'; %训练样本的输出数据
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %不明白请解释
net=newff(minmax(pn),[3,13,13,13,3],{'purelin' 'tansig' 'tansig' 'tansig' 'purelin'},'trainbr'); %调用训练函数,包括层数、隐层节点数、训练函数等,想知道如果是同类、同维数据间的转换用什么函数比较好?这里的minmax(pn)是指怎样的最大与最小的数?
net=init(net);
net.trainParam. show = 100; %这里的show什么意思,具体值根据什么定?
net.trainparam.epoehs=2000; %训练次数
net.trainParam.goal=0.0001; %目标误差,但是是什么和什么的误差?
net.trainParam.lr = 0.01; %不明白 lr是什么?值怎么定
net=train(net,pn,tn);
y1=sim(net,pn); %是什么呢?sim表示什么?
tnew=postmnmx(y1,mint,maxt); ?
tnew1=tnew'; ?
xlswrite('testdata6',tnew1); ?这里的testdata6是自己的检验数据么?要放在work文件夹里么?
pnew1=[151 0 36;
0 80 254;
0 102 255;
0 99 201;
0 185 141;
0 179 142;
67 160 143;
169 143 0;
197 122 146;
147 127 255;
255 115 174;
0 245 52;
214 197 138;
233 154 255;
107 255 90;
130 255 0;
193 242 93;
255 44 255;
151 151 151;
]; %这是用来干什么的数据?
pnew=pnew1'; %?
pnewn = tramnmx (pnew,minp,maxp); %?
y2=sim(net,pnewn);
tnew=postmnmx(y2,mint,maxt);
tnew1=tnew';
xlswrite('testdata5',tnew1); % testdata5和上面的testdata6一样么?

第1个回答  2016-03-22
楼主解决没?这是我知道的

[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %归一化数据,方便后面的预测

net.trainParam. show = 100; %这里的show是显示步数,每100步显示一次
net.trainParam.goal=0.0001; %目标误差,训练得到的数据和原始输入
net.trainParam.lr = 0.01; %lr是学习动量,一般越小越好
y1=sim(net,pn); %sim用来预测的

xlswrite('testdata6',tnew1); ?这里的testdata6是excel表格的名称

你可以看看书的,书上都有介绍
第2个回答  2011-04-20
% 创建一个新的前向神经网络
net_1=newff(minmax(P),[10,1],,'traingdm')

% 当前输入层权值和阈值
inputWeights=net_1.IW
inputbias=net_1.b
% 当前网络层权值和阈值
layerWeights=net_1.LW
layerbias=net_1.b

% 设置训练参数
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;

% 调用 TRAINGDM 算法训练 BP 网络
[net_1,tr]=train(net_1,P,T);

% 对 BP 网络进行仿真
A = sim(net_1,P);
% 计算仿真误差
E = T - A;
MSE=mse(E)

x=[。。。]';%测试
sim(net_1,x)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
不可能啊 我2009本回答被网友采纳
相似回答