[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大小的手写体二值化图像每个像素上的值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)