24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 3546  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

lailaiwq12

新虫 (初入文坛)

[交流] BP神经网络程序不收敛怎么办?已有1人参与

我的程序如下  刚学请大神指点  顺便帮改正一下 小弟不胜感激!!!  
input_train=[280,280,280,280,280,280,220,240,260,280,300,320,280,280,280,280,280,280,280,280,280,280,280,280,240,240,240,280,280,280,320,320,320,260,280,300,320,340,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320;180,180,180,180,180,180,180,180,180,180,180,180,60,100,140,180,220,260,180,180,180,180,180,180,60,100,180,60,100,180,60,100,180,51,51,51,51,51,51,64,77,89,102,51,51,51,51,51,51,51,51,51,51;454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,363,409,454,499,545,590,454,499,545,545,454,499,499,545,454,499,499,499,499,499,499,499,499,499,499,409,454,499,545,590,499,499,499,499,499;2,3,4,5,6,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,5,4,5,3,5,3,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,4,5,6];
output_train=[19,20,19,17,15,15.5,16,16.7,13,20,17.5,17.3,25.8,22.3,21.2,14.5,16,15.2,20,22,21.5,14.1,13.5,16.9,19.2,16.8,11.3,18.3,15.2,13.5,16.5,19.2,14.9,5.1,5.6,5.9,4.9,4.6,6.1,5.3,4.8,4.4,4.0,6.1,6.9,6.0,5.7,4.9,4.4,4.9,6.7,6.6,6.1];
[inputn,inputps]=mapminmax(input_train);
net=feedforwardnet(13);
net.trainFcn='trainr';
net.trainParam.mu=0.01;
net.trainParam.mu_dec=0.2;
net.trainParam.show=1;
net.trainParam.epochs=100000;
net.trainParam.mu_inc=10;
net.trainParam.goal=0.1;
net=train(net,input_train,output_train);
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lailaiwq12

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by hjnwsuaf at 2015-12-04 08:48:14
你试试这个吧。用这个先确定神经网络的训练算法和神经元节点数。

% c_d为训练数据,变量按行放置
% 这个程序仅仅是用来构建BP神经网络模型,也就是对网络模型训练算法、隐含层神经元节点数优选的
%-----输入参 ...

亲,这个我完全看不懂啊,可不可以把数据什么填好,完整的发一份。非常感激!!
4楼2015-12-04 10:14:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

lailaiwq12

新虫 (初入文坛)

2楼2015-12-03 16:46:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hjnwsuaf

金虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
你试试这个吧。用这个先确定神经网络的训练算法和神经元节点数。

% c_d为训练数据,变量按行放置
% 这个程序仅仅是用来构建BP神经网络模型,也就是对网络模型训练算法、隐含层神经元节点数优选的
%-----输入参数
% my_mse为系统训练误差
% my_loops为系统训练迭代次数
% my_ns系统训练阶段真实值和模拟值纳什统计系数
% my_relative_coeff为系统训练阶段真实值和模拟值相关系数
% sim_data为模拟值
%-----输入参数
% error为目标误差
% n_n隐含层神经元节点数
% train_f网络训练算法
% itera_n最大迭代次数
function [my_mse,my_loops,my_ns,my_relative_coeff,sim_data]=my_bp_model(c_d,error,n_n,train_f,itera_n)
[m n]=size(c_d);
x=c_d(1:m-1,;
y=c_d(m,;
%求取输入样本的最大最小值
for i=1m-1)
    minmax(i,=[min(x(i,) max(x(i,)];
end
%选择训练算法
switch train_f
    case 1
        t_f='traincgf';%共轭梯度法
    case 2
        t_f='train';%批处理训练算法
    case 3
        t_f='traingdm';%带动量的梯度下降算法
    case 4
        t_f='trainlm';%Levenberg-Marquardt算法
    otherwise
        disp('invalde train method!');
end
%构建神经网络
my_net=newff(minmax,y,[n_n,1],{'tansig','purelin'},t_f);
my_net.trainParam.goal=error;
my_net.trainParam.epochs=itera_n;
my_net.trainParam.showWindow=0;%用来不显示nntraintool的window窗=窗口
%网络训练
[my_net,tr]=train(my_net,x,y);
%网络仿真模拟
y_sim=sim(my_net,x);
%对bp神经网络预测模型进行评估
my_mse=(sum((y-y_sim).^2))/n;
my_loops=max(tr.epoch);
my_ns=ns_coef_func(y,y_sim);
my_relative_coeff=my_Pearson_coeff(y,y_sim);
sim_data=y_sim;
3楼2015-12-04 08:48:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hjnwsuaf

金虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
4楼: Originally posted by lailaiwq12 at 2015-12-04 10:14:54
亲,这个我完全看不懂啊,可不可以把数据什么填好,完整的发一份。非常感激!!...

这是个函数,你可以直接调用的。
5楼2015-12-04 11:34:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见