lnhanwei 发表于 2009-2-4 17:56

请帮我看看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 编辑 ]

lnhanwei 发表于 2009-2-4 17:56

显示错误是:
??? Error using ==> network.train
Targets are incorrectly sized for network.
Matrix must have 10 columns

ChaChing 发表于 2009-2-5 00:14

nn从没玩过! 错误讯息告知输入矩阵大小不对! 建议检查一下!
还有LZ的 p, t有点乱, 建议编辑下!

dundun628 发表于 2009-2-6 09:54

是这样的,首先,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 编辑 ]

dundun628 发表于 2009-2-6 09:58

PS:楼主既然写好代码了,最好给m文件出来,否则那数据可真是够乱的,我光改数据格式改了半天。。。

lnhanwei 发表于 2009-2-8 01:25

谢谢楼上两位朋友的帮助!以后我会注意尽量给您合格的矩阵,因为刚刚学习,不是很明白,请谅解!

下面我的附件是我重新整理的矩阵和程序,请帮忙看看。最后输出是:
TRAINLM, Maximum MU reached, performance goal was not met.这是什么意思,还有,为什么误差到不了0。001,杂0。002附近就停止了呢?我该怎么做?

谢谢谢谢:victory:

lnhanwei 发表于 2009-2-8 01:29

为了使您能更容易看懂和理解我表达的意思,上面的AC。M文件,我在程序中加了很多说明,编程上如有那些问题或者注意事项,请指正,谢谢

lnhanwei 发表于 2009-2-8 01:34

另外还有一个问题:
为什么要封装呢?p=num2cell(p,1);t=num2cell(t,1);
不做这个,不也能训练吗?

ChaChing 发表于 2009-2-8 12:31

回复 6楼 lnhanwei 的帖子

nn从没玩过! 仅就程式写法提供小意见!
LZ程序中的t/y即然最後是列矩阵, 何不一开始直接输入列矩阵!
还有行矩阵亦可如此输入 t=[1.90; 0.20; -0.64; -2.13; ...
不然光这两个就好几百行, 不是很好阅读! 参考参考!

lnhanwei 发表于 2009-2-8 15:02

不会别的处理方法,我是直接从EXECL中把数据复制粘贴过来的,在电子表格中,数据是以时间顺序,按行排布的,所以就成了一个样子,不过我看的时候比较习惯了,一行行,都是不同时间下的数据组,呵呵

谢谢你,朋友!

ChaChing 发表于 2009-2-8 18:31

回复 10楼 lnhanwei 的帖子

没关系! 没人是什麽都精通的! 或许有, 太少了!
论坛目的不是就是大家互相补短吗? 至少个人如此认为!
LZ的问题, 没能使上力! 都怪自己太懒! 几年前即曾想学学, 至今还未开始! 或许老了! 帮自己找理由!
页: [1]
查看完整版本: 请帮我看看BP网错哪了,谢谢