?? ga訓練bp權(quán)值的主函數(shù)1.m
字號:
function net=GABPNET(XX,YY)
nntwarn off
XX=premnmx(XX);
YY=premnmx(YY);
net=newff(minmax(XX),[19,25,1],{'tansig','tansig','purelin'},'trainlm');
P=XX;
T=YY;
R=size(P,1);
S2=size(T,1);
S1=25;
S=R*S1+S1*S2+S1+S2;%遺傳算法編碼長度
aa=ones(S,1)*[-1,1];
popu=50;%種群規(guī)模
initPpp=initializega(popu,aa,'gabpEval');%初始化種群
gen=100;%遺傳代數(shù)
%下面調(diào)用gaot工具箱,其中目標函數(shù)定義為gabpEval
[x,endPop,bPop,trace]=ga(aa,'gabpEval',[],initPpp,[1e-6 1 1],'maxGenTerm',gen,...
'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]);
%繪收斂曲線圖
figure(1)
plot(trace(:,1),1./trace(:,3),'r-');
hold on
plot(trace(:,1),1./trace(:,2),'b-');
xlabel('Generation');
ylabel('Sum-Squared Error');
figure(2)
plot(trace(:,1),trace(:,3),'r-');
hold on
plot(trace(:,1),trace(:,2),'b-');
xlabel('Generation');
ylabel('Fittness');
%下面將初步得到的權(quán)值矩陣賦給尚未開始訓練的BP網(wǎng)絡(luò)
[W1,B1,W2,B2,P,T,A1,A2,SE,val]=gadecod(x);
net.LW{2,1}=W1;
net.LW{3,2}=W2;
net.b{2,1}=B1;
net.b{3,1}=B2;
XX=P;
YY=T;
%設(shè)置訓練參數(shù)
net.trainParam.show=1;
net.trainParam.lr=1;
net.trainParam.epochs=50;
net.trainParam.goal=0.001;
%訓練網(wǎng)絡(luò)
net=train(net,XX,YY);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -