请帮我看看BP网错哪了,谢谢
有192组训练样本和对应的目标样本,训练样本是每组10个参数的,目标样本每组就一个,组建一个隐层,10输入1输出的BP网络,请帮我看看错哪了,谢谢!!!!clear all;
p=[...]; t=[...];%p, t原始有点乱, 编辑下! 删除掉, 资料参见4F Untitled090206.m
pr=minmax(p)
net = newff(pr,,{'tansig' 'purelin'},'traingdx','learngdm');
net.trainParam.epochs = 2500;
net.trainParam.goal = 0.001;
net.trainParam.show = 10;
net.trainParam.lr = 0.05;
net = train(net,p,t);
save 19#net net;
[ 本帖最后由 ChaChing 于 2009-2-6 21:04 编辑 ] 显示错误是:
??? Error using ==> network.train
Targets are incorrectly sized for network.
Matrix must have 10 columns nn从没玩过! 错误讯息告知输入矩阵大小不对! 建议检查一下!
还有LZ的 p, t有点乱, 建议编辑下! 是这样的,首先,train函数里的p,t应该是一一对应的,都是行向量。
如help train中的example:
p = ;
t = ;
……
对于你的问题,有192个样本,每个样本有10个数据,对应1个输出,所以,首先要把矩阵转置,然后用cell把每个样本的10个数据封装起来,即:
p=num2cell(p,1);
t=num2cell(t,1);
此时,输入样本和训练样本都是1行192列的cell了~~~
再计算就可以了
m文件也给你~~~自己调吧
[ 本帖最后由 dundun628 于 2009-2-6 09:57 编辑 ] PS:楼主既然写好代码了,最好给m文件出来,否则那数据可真是够乱的,我光改数据格式改了半天。。。 谢谢楼上两位朋友的帮助!以后我会注意尽量给您合格的矩阵,因为刚刚学习,不是很明白,请谅解!
下面我的附件是我重新整理的矩阵和程序,请帮忙看看。最后输出是:
TRAINLM, Maximum MU reached, performance goal was not met.这是什么意思,还有,为什么误差到不了0。001,杂0。002附近就停止了呢?我该怎么做?
谢谢谢谢:victory: 为了使您能更容易看懂和理解我表达的意思,上面的AC。M文件,我在程序中加了很多说明,编程上如有那些问题或者注意事项,请指正,谢谢 另外还有一个问题:
为什么要封装呢?p=num2cell(p,1);t=num2cell(t,1);
不做这个,不也能训练吗?
回复 6楼 lnhanwei 的帖子
nn从没玩过! 仅就程式写法提供小意见!LZ程序中的t/y即然最後是列矩阵, 何不一开始直接输入列矩阵!
还有行矩阵亦可如此输入 t=[1.90; 0.20; -0.64; -2.13; ...
不然光这两个就好几百行, 不是很好阅读! 参考参考! 不会别的处理方法,我是直接从EXECL中把数据复制粘贴过来的,在电子表格中,数据是以时间顺序,按行排布的,所以就成了一个样子,不过我看的时候比较习惯了,一行行,都是不同时间下的数据组,呵呵
谢谢你,朋友!
回复 10楼 lnhanwei 的帖子
没关系! 没人是什麽都精通的! 或许有, 太少了!论坛目的不是就是大家互相补短吗? 至少个人如此认为!
LZ的问题, 没能使上力! 都怪自己太懒! 几年前即曾想学学, 至今还未开始! 或许老了! 帮自己找理由!
页:
[1]