发布网友 发布时间:2022-04-23 06:30
共1个回答
热心网友 时间:2023-07-26 12:00
咨询记录 · 回答于2021-06-06怎样可以提高神经网络的收敛速度?先确定神经网络的训练算法和神经元节点数。% 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_fcase 1t_f='traincgf';%共轭梯度法case 2t_f='train';%批处理训练算法case 3t_f='traingdm';%带动量的梯度下降算法case 4t_f='trainlm';%Levenberg-Marquardt算法otherwisedisp('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神经