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

matlab BP神经网络训练程序求解释,第1张

楼主解决没?这是我知道的

[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表格的名称

你可以看看书的,书上都有介绍

这是BP神经网络的特征维和样本输入建立关系;

1 for hh=1:30

p((hh-1)*30+1:(hh-1)*30+30,pcolum+1)=p1(hh,1:30)

end

//总共有pcolum个样本,每个样本有30维特征值;依次循环送入记录特征值的矩阵p中,

2 switch pcolum 用于把样本的值送入教师矩阵t中;样本按0~49顺序输入;对应5组0~9,比方第一个case中告诉t在0~49中那些属于“数字0”;

总的来说t值对应不同的p取1~9

也就是说这段程序的中心目的是把p( 特征维,pcolum)与对应的输出t(pcolum)对应起来,之后再把p和t送入BP网络中训练

主要看你p1是怎么来的;估计是把原始手写体分成粗网格;即p1是一个30×30的矩阵,p是一个900×50的矩阵;其列为输入的50个手写体;行为900个网格的值;

for hh=1:30

p((hh-1)*30+1:(hh-1)*30+30,pcolum+1)=p1(hh,1:30)

end

这段程序其实就是把2维的p1放入到p的一行里面去;把30×30的矩阵换成900×1

的形式。

你去搜索下 粗网格/BP神经 ,具体看你前面的p1是怎么来的;可能你这30×30的矩阵就是30×30大小的手写体二值化图像每个像素上的值


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7920957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存