Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all
- close all
- nntwarn off
- load dane.txt
- P = dane(:, 1:34);
- T = dane(:, 35);
- maxP=max(P');
- minP=min(P');
- Pn=zeros(size(P));
- for i=1:length(maxP),
- Pn(i,:) = (1-(-1))*(P(i,:)-minP(i))/(maxP(i)-minP(i)) + (-1);
- end
- P = P';
- Pn = Pn';
- T = T';
- %maxP=max(P);
- %Pn=zeros(size(P);
- %for i=1:length(maxP),
- %Pn(:,i)=P(:,i)/maxP(i);
- %end
- %S1_vec = [10:5:30];
- S1_vec = [2:1:11];
- S2_vec = S1_vec;
- lr_inc_vec = [ 1.01:0.02:1.07];
- lr_dec_vec = [.5:.1:.9];
- mc_vec = [.1:.2:.9 .99];
- er_vec = [1.02:0.01:1.06];
- % TP(5) - Learning rate increase, default = 1.05. %FOR
- % TP(6) - Learning rate decrease, default = 0.7. %FOR
- % TP(7) - Momentum constant, default = 0.9. %FOR
- % TP(8) - Maximum error ratio, default = 1.04. %FOR
- % q = zeros(length(S1_vec),length(S2_vec),length(lr_inc_vec),length(lr_dec_vec), length(mc_vec),length(er_vec));
- liczba_petli = length(S1_vec)*length(S2_vec)*length(lr_inc_vec)*...
- length(lr_dec_vec)*length(er_vec)*length(mc_vec);
- ind_petli = 0;
- od_petli = 0;
- disp_freq = 1000; % frequency of progress displays (in epochs).
- max_epoch = 1000; % maximum number of epochs.
- err_goal = .25; % sum-squared error goal.
- lr = 1e-4; % learning rate.
- q=0;
- qmax=0;
- size(Pn)
- size(P)
- size(T)
- for ind_S1=1:length(S1_vec), %S1 = 15; %FOR
- %for ind_S2=1:ind_S1, %S2 = 11; %FOR
- [S3,Q] = size(T);
- [W1,B1,W2,B2] = initff(Pn,S1_vec(ind_S1),'tansig',S3,'purelin');
- %%%% ,W3,B3 S2_vec(ind_S2),'tansig'
- save Wagi_Pierwszy W1 W2 B1 B2
- for ind_lr_inc=1:length(lr_inc_vec),
- for ind_lr_dec=1:length(lr_dec_vec),
- for ind_mc=1:length(mc_vec),
- for ind_er=1:length(er_vec),
- if od_petli <= ind_petli,
- load Wagi_Pierwszy
- [W1,B1,W2,B2] = initff(Pn,S1_vec(ind_S1),'tansig',S3,'purelin');
- TP = [disp_freq max_epoch err_goal lr lr_inc_vec(ind_lr_inc) lr_dec_vec(ind_lr_dec) mc_vec(ind_mc) er_vec(ind_er)];
- [W1,B1,W2,B2,TE,TR] = trainbpx(W1,B1,'tansig',W2,B2,'purelin',Pn,T,TP);
- a = simuff(Pn,W1,B1,'tansig',W2,B2,'purelin');
- % q(ind_S1, ind_S2, ind_lr_inc, ind_lr_dec, ind_mc, ind_er)=...
- % (1-sum(abs(T-a)>0.5)/length(P))*100;
- q=(1-sum(abs(T-a)>0.5)/length(Pn))*100;
- if q>qmax,
- qmax=q;
- % ind_S1_max =
- % ind_S2_max =
- end
- end
- ind_petli = ind_petli + 1;
- % [ind_petli/liczba_petli*100 q(ind_S1, ind_S2, ind_lr_inc, ind_lr_dec, ind_mc, ind_er)]
- if od_petli < ind_petli,
- [ind_petli/liczba_petli*100 q qmax]
- %oblicz SSE i wprowadz do zmiennej wyniki
- SSE_blad=TR(2*TE+1);
- %ponizej
- wyniki(ind_petli,:)=[ind_petli, S1_vec(ind_S1), lr_inc_vec(ind_lr_inc), lr_dec_vec(ind_lr_dec), mc_vec(ind_mc), er_vec(ind_er), q, SSE_blad,lr];
- save Wyniki_Pierwszy wyniki
- %{S2_vec(ind_S2),
- end
- end
- end
- end
- end
- end
- %end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement