In an assignment A( = B, the number of elements in A and B must be the same.
Error in GA_BP (line 60)
individuals.fitness(i)=fun(x,inputnum,hiddennum,outputnum,net,inputn,outputn); %染色體的適應(yīng)度
fun函數(shù)如下:
function error = fun(x,inputnum,hiddennum,outputnum,net,inputn,outputn)
%該函數(shù)用來(lái)計(jì)算適應(yīng)度值
%x input 個(gè)體
%inputnum input 輸入層節(jié)點(diǎn)數(shù)
%outputnum input 隱含層節(jié)點(diǎn)數(shù)
%net input 網(wǎng)絡(luò)
%inputn input 訓(xùn)練輸入數(shù)據(jù)
%outputn input 訓(xùn)練輸出數(shù)據(jù)
%error output 個(gè)體適應(yīng)度值
%提取
w1=x(1:inputnum*hiddennum);
B1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);
w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);
B2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);
net=newff(inputn,outputn,hiddennum,{'tansig','purelin','trainlm'});
%網(wǎng)絡(luò)進(jìn)化參數(shù)
net.trainParam.epochs=10000;
net.trainParam.lr=0.15;
net.trainParam.goal=0.00001;
% net.trainParam.show=100;
% net.trainParam.showWindow=0;
%網(wǎng)絡(luò)權(quán)值賦值
net.iw{1,1}=reshape(w1,hiddennum,inputnum);
net.lw{2,1}=reshape(w2,outputnum,hiddennum);
net.b{1}=reshape(B1,hiddennum,1);
net.b{2}=reshape(B2,outputnum,1);
%網(wǎng)絡(luò)訓(xùn)練
net=train(net,inputn,outputn);
an=sim(net,inputn);
error=sum(abs(an-outputn));
![In an assignment A(:) = B, the number of elements in A and B must be the same.]()
截圖.jpg |