
这个matlab的bp神经网络为什么误差这么大?
P=1:2:100;T=sin(P*0.1);NodeNum=7;TypeNum=1;Epochs=10000;TF1='tansig';TF2='purelin';ne...
P=1:2:100;
T=sin(P*0.1);
NodeNum=7;
TypeNum=1;
Epochs=10000;
TF1 = 'tansig';TF2='purelin';
net=newff(minmax(P),[NodeNum TypeNum],{TF1 TF2},'trainlm');
net.trainParam.epochs=Epochs;
net.trainParam.goal=1e-8;
net.trainParam.min_grad=1e-20;
net.trainParam.show=200;
net.trainParam.time=inf;
net=train(net,P,T);
X=sim(net,P); %对用来训练的输入进行仿真
E=X-T;
sumsqr(E)
P1=2:2:200;
X=sim(net,P1); %对另外一个输入进行仿真
T1=sin(P1*0.1);
E=X-T1;
sumsqr(E)
ans =
4.9766e-007
ans =
111.2491
两次计算均方差结果,第一次结果很好,第二次为什么误差这么大?
谢谢大家 展开
T=sin(P*0.1);
NodeNum=7;
TypeNum=1;
Epochs=10000;
TF1 = 'tansig';TF2='purelin';
net=newff(minmax(P),[NodeNum TypeNum],{TF1 TF2},'trainlm');
net.trainParam.epochs=Epochs;
net.trainParam.goal=1e-8;
net.trainParam.min_grad=1e-20;
net.trainParam.show=200;
net.trainParam.time=inf;
net=train(net,P,T);
X=sim(net,P); %对用来训练的输入进行仿真
E=X-T;
sumsqr(E)
P1=2:2:200;
X=sim(net,P1); %对另外一个输入进行仿真
T1=sin(P1*0.1);
E=X-T1;
sumsqr(E)
ans =
4.9766e-007
ans =
111.2491
两次计算均方差结果,第一次结果很好,第二次为什么误差这么大?
谢谢大家 展开
1个回答
展开全部
首先是数据归一化,看见你程序好像是没有设定步长吧,设上试试

2024-12-25 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者...
点击进入详情页
本回答由富港检测东莞有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询