我用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);
急急急急 谢谢啦 展开
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);
急急急急 谢谢啦 展开
3个回答
展开全部
你应该将数据先归一化,
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %将数据归一化
后的训练train(net,pn,tn)
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %将数据归一化
后的训练train(net,pn,tn)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同意楼上的说法,建议先进行归一化后在进行运算!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询