用matlab训练BP神经网络训练精度低,总达不到要求,您能帮忙看一下程序吗? 200
clearallloadinputloadoutputT=[input,output];%载入数据10000*7indices=crossvalind('Kfold',1...
clear all
load input
load output
T=[input,output];%载入数据10000*7
indices=crossvalind('Kfold',10000,10);%分割数据集
i=1;
test=(indices==i);
traiin=~test;
traiinin=(T(traiin,1:3))';%输入的训练数据
traiinout=(T(traiin,4:7))';%对应的输出训练数据
testin=(T(test,1:3))';%输入的一个测试集
testout=(T(test,4:7))';%对应的输出测试集
[traiininn,ps_in]=mapminmax(traiinin);%数据归一化
[traiinoutn,ps_out]=mapminmax(traiinout);
testinn=mapminmax('apply',testin,ps_in);
net=newff(traiininn,traiinoutn,150,{'tansig','purelin'},'trainlm');%构建网络
net.trainParam.epochs=500;
net.trainParam.goal=1e-4;
net.trainParam.lr=0.01;
net.divideFcn='';
net=train(net,traiininn,traiinoutn);%网络训练
p=sim(net,testinn);%测试集的预测结果
P1=mapminmax('reverse',p,ps_out);%预测结果的反归一化
E1=abs((P1-testout)./testout) 展开
load input
load output
T=[input,output];%载入数据10000*7
indices=crossvalind('Kfold',10000,10);%分割数据集
i=1;
test=(indices==i);
traiin=~test;
traiinin=(T(traiin,1:3))';%输入的训练数据
traiinout=(T(traiin,4:7))';%对应的输出训练数据
testin=(T(test,1:3))';%输入的一个测试集
testout=(T(test,4:7))';%对应的输出测试集
[traiininn,ps_in]=mapminmax(traiinin);%数据归一化
[traiinoutn,ps_out]=mapminmax(traiinout);
testinn=mapminmax('apply',testin,ps_in);
net=newff(traiininn,traiinoutn,150,{'tansig','purelin'},'trainlm');%构建网络
net.trainParam.epochs=500;
net.trainParam.goal=1e-4;
net.trainParam.lr=0.01;
net.divideFcn='';
net=train(net,traiininn,traiinoutn);%网络训练
p=sim(net,testinn);%测试集的预测结果
P1=mapminmax('reverse',p,ps_out);%预测结果的反归一化
E1=abs((P1-testout)./testout) 展开
1个回答
展开全部
用matlab训练BP神经网络训练精度低,总达不到要求?一般可以修改net下列参数:
1、首选项,训练模式
net=newff(traiininn,traiinoutn,150,{'tansig','purelin'},'trainlm');%构建网络
2、次选项,训练步数
net.trainParam.epochs=500;
3、次选项,训练精度
net.trainParam.goal=1e-4;
net.trainParam.lr=0.01;
追答
如还有问题,可以把相关代码贴出来,或私信交流。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询