我用matlab实现BP神经网络的训练,训练后误差为0.05几,但测试时无论输入什么数输出的数都一样,为什么啊 20

程序如下clearallP=[4002102.1100.5-2.6780.8540.95;21005200.8880.5-2.6780.8541;28005170.910... 程序如下
clear all
P=[400 2 10 2.1 10 0.5 -2.67 8 0.8 5 4 0.95;
2100 5 20 0.88 8 0.5 -2.67 8 0.8 5 4 1;
2800 5 17 0.9 10 0.5 0.4 8 0.8 5 8 1;
3100 5 21 0.62 10 0.75 0.2 10 1 5 10 1;
3500 5 22 0.47 8 1 1 10 1 5 10 1;
3800 5 21 0.53 10 0.5 2 8 1 5 4 1;
4000 5 22 0.87 10 0.5 1 10 0.8 5 10 1;
7000 9 24 0.71 10 1 1 10 0.5 7.5 10 1;
10000 10 28 0.6 10 1 1 10 1 7.5 10 1;
20000 10 28 0.45 10 1 1 10 0.8 1 10 1;
]';
T=[0.2017 0.4160 0.4601 0.6199 0.6276 0.6347 0.6801 0.8358 0.9591 0.9868];
net=newff([-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1],[4 1],{'logsig' 'logsig'},'traingd');
net.trainParam.goal=0.001;
net.trainParam.epochs=2000;
net=train(net,P,T);
急急急急 谢谢啦
展开
 我来答
LB666
2012-05-24 · 超过11用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:108万
展开全部
可能是这个原因,在你的输入集中有巨大的数,如20000,造成大数吃小数
百度网友b8c6d64
2012-05-31 · 超过14用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:30.6万
展开全部
你应该将数据先归一化,
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %将数据归一化
后的训练train(net,pn,tn)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
myQQ382101365
2012-06-03 · 超过56用户采纳过TA的回答
知道答主
回答量:183
采纳率:100%
帮助的人:158万
展开全部
同意楼上的说法,建议先进行归一化后在进行运算!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式