• 大小: 6KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Matlab
  • 标签: 遗传算法  matlab  

资源简介

基于遗传算法的BP神经网络优化算法matlab程序,matlab可以直接运行

资源截图

代码片段和文件信息

function err=BPfun(xPThiddennumP_testT_test)
%% 训练&测试BP网络
%% 输入
% x:一个个体的初始权值和阈值
% P:训练样本输入
% T:训练样本输出
% hiddennum:隐含层神经元数
% P_test:测试样本输入
% T_test:测试样本期望输出
%% 输出
% err:预测样本的预测误差的范数

inputnum=size(P1);       % 输入层神经元个数
outputnum=size(T1);      % 输出层神经元个数
%% 新建BP网络
net=newff(minmax(P)[hiddennumoutputnum]{‘tansig‘‘logsig‘}‘trainlm‘);
%% 设置网络参数:训练次数为1000,训练目标为0.01,学习速率为0.1
net.trainParam.epochs=1000;
net.trainParam.goal=0.01;
LP.lr=0.1;
net.trainParam.show=NaN;
% net.trainParam.showwindow=false;  %高版MATLAB
%% BP神经网络初始权值和阈值
w1num=inputnum*hiddennum; % 输入层到隐层的权值个数
w2num=outputnum*hiddennum;% 隐层到输出层的权值个数
w1=x(1:w1num);   %初始输入层到隐层的权值
B1=x(w1num+1:w1num+hiddennum);  %初始隐层阈值
w2=x(w1num+hiddennum+1:w1num+hiddennum+w2num); %初始隐层到输出层的阈值
B2=x(w1num+hiddennum+w2num+1:w1num+hiddennum+w2num+outputnum); %输出层阈值
net.iw{11}=reshape(w1hiddennuminputnum);
net.lw{21}=reshape(w2outputnumhiddennum);
net.b{1}=reshape(B1hiddennum1);
net.b{2}=reshape(B2outputnum1);
%% 训练网络以
net=train(netPT);
%% 测试网络
Y=sim(netP_test);
err=norm(Y-T_test);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-11-01 17:52  基于遗传算法的BP神经网络优化算法\
     文件        1282  2018-10-05 17:15  基于遗传算法的BP神经网络优化算法\BPfun.m
     文件        1864  2011-03-31 19:30  基于遗传算法的BP神经网络优化算法\callbackfun.m
     文件        1607  2010-12-09 10:05  基于遗传算法的BP神经网络优化算法\data.mat
     文件        2307  2010-12-12 19:16  基于遗传算法的BP神经网络优化算法\GABPMain.m
     文件         404  2018-10-05 17:15  基于遗传算法的BP神经网络优化算法\Objfun.m

评论

共有 条评论