声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1381|回复: 10

[综合讨论] 请帮我看看BP网错哪了,谢谢

[复制链接]
发表于 2009-2-4 17:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
有192组训练样本和对应的目标样本,训练样本是每组10个参数的,目标样本每组就一个,组建一个隐层,10输入1输出的BP网络,请帮我看看错哪了,谢谢!!!!

clear all;
p=[...]; t=[...];  %p, t原始有点乱, 编辑下! 删除掉, 资料参见4F Untitled090206.m
pr=minmax(p)
net = newff(pr,[20 1],{'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 编辑 ]
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-2-4 17:56 | 显示全部楼层
显示错误是:
??? Error using ==> network.train
Targets are incorrectly sized for network.
Matrix must have 10 columns
发表于 2009-2-5 00:14 | 显示全部楼层
nn从没玩过! 错误讯息告知输入矩阵大小不对! 建议检查一下!
还有LZ的 p, t有点乱, 建议编辑下!
发表于 2009-2-6 09:54 | 显示全部楼层
是这样的,首先,train函数里的p,t应该是一一对应的,都是行向量。

如help train中的example:
p = [0 1 2 3 4 5 6 7 8];
t = [0 0.84 0.91 0.14 -0.77 -0.96 -0.28 0.66 0.99];
……

对于你的问题,有192个样本,每个样本有10个数据,对应1个输出,所以,首先要把矩阵转置,然后用cell把每个样本的10个数据封装起来,即:
p=num2cell(p,1);
t=num2cell(t,1);
此时,输入样本和训练样本都是1行192列的cell了~~~

再计算就可以了
Untitled.jpg

m文件也给你~~~自己调吧

[ 本帖最后由 dundun628 于 2009-2-6 09:57 编辑 ]

Untitled090206.m

13.64 KB, 下载次数: 14

评分

1

查看全部评分

发表于 2009-2-6 09:58 | 显示全部楼层
PS:楼主既然写好代码了,最好给m文件出来,否则那数据可真是够乱的,我光改数据格式改了半天。。。

评分

1

查看全部评分

 楼主| 发表于 2009-2-8 01:25 | 显示全部楼层
谢谢楼上两位朋友的帮助!以后我会注意尽量给您合格的矩阵,因为刚刚学习,不是很明白,请谅解!

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

谢谢谢谢:victory: ac.m (14.19 KB, 下载次数: 12)
 楼主| 发表于 2009-2-8 01:29 | 显示全部楼层
为了使您能更容易看懂和理解我表达的意思,上面的AC。M文件,我在程序中加了很多说明,编程上如有那些问题或者注意事项,请指正,谢谢
 楼主| 发表于 2009-2-8 01:34 | 显示全部楼层
另外还有一个问题:
为什么要封装呢?p=num2cell(p,1);t=num2cell(t,1);
不做这个,不也能训练吗?
发表于 2009-2-8 12:31 | 显示全部楼层

回复 6楼 lnhanwei 的帖子

nn从没玩过! 仅就程式写法提供小意见!
LZ程序中的t/y即然最後是列矩阵, 何不一开始直接输入列矩阵!
还有行矩阵亦可如此输入 t=[1.90; 0.20; -0.64; -2.13; ...
不然光这两个就好几百行, 不是很好阅读! 参考参考!
 楼主| 发表于 2009-2-8 15:02 | 显示全部楼层
不会别的处理方法,我是直接从EXECL中把数据复制粘贴过来的,在电子表格中,数据是以时间顺序,按行排布的,所以就成了一个样子,不过我看的时候比较习惯了,一行行,都是不同时间下的数据组,呵呵

谢谢你,朋友!
发表于 2009-2-8 18:31 | 显示全部楼层

回复 10楼 lnhanwei 的帖子

没关系! 没人是什麽都精通的! 或许有, 太少了!
论坛目的不是就是大家互相补短吗? 至少个人如此认为!
LZ的问题, 没能使上力! 都怪自己太懒! 几年前即曾想学学, 至今还未开始! 或许老了! 帮自己找理由!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-2 19:33 , Processed in 0.073191 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表