資源簡介
基于遺傳算法的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
評論
共有 條評論