SHARE
TWEET

Ryszard_Mariusz

pabloducato May 15th, 2018 74 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. clear all;
  2. nntwarn off;
  3. format compact;
  4.  
  5. file = dlmread ('data2.txt');
  6.  
  7. P = file(:, 1:34)';
  8. T = file(:, 35)';
  9.  
  10. size(P)
  11. size(T)
  12.  
  13. clear file;
  14.  
  15.  
  16. [R,Q] = size(P);
  17. [S3,Z] = size(T);
  18.  
  19. max_epoch = 1000; %liczba epok uczenia 20000 - 40000 nie zwiekszac, tylko zmniejszac np 500
  20. err_goal = 0.25; %blad docelowy
  21. disp_freq=100; %czestotliwosc wyswietlania nie uzywac!!!
  22. error = [];
  23.  
  24. S1 = [4:1:20]; %2:1:30
  25. S2 = S1;
  26.  
  27. lr = [0.7 0.9 0.01 0.001 0.0001 0.00001];
  28.  
  29. for ind_S1=1:length(S1),
  30.     for ind_S2=1:ind_S1,
  31.         for ind_lr=1:length(lr),
  32.             [W1,B1] = nwtan(S1(ind_S1), R); %wagi
  33.             [W2,B2] = nwtan(S2(ind_S2), S1(ind_S1)); %wagi
  34.             [W3,B3] = rands(S3, S2(ind_S2)); % 1 bo S1 ma wymiar 1
  35.            
  36.             correct = 0;
  37.            
  38.             for epoch=1:max_epoch,
  39.                 A1 = tansig(W1*P,B1);
  40.                 A2 = tansig(W2*A1,B2);
  41.                 A3 = purelin(W3*A2,B3);
  42.                
  43.                 E = T -A3;
  44.            
  45.                 D3 = deltalin(A3,E);
  46.                 D2 = deltatan(A2,D3,W3);
  47.                 D1 = deltatan(A1,D2,W2);
  48.            
  49.                 [dW1,dB1] = learnbp(P,D1,lr(ind_lr));
  50.            
  51.                 W1 = W1 + dW1;
  52.                 B1 = B1 + dB1;
  53.            
  54.                 [dW2,dB2] = learnbp(A1,D2,lr(ind_lr));
  55.                 W2 = W2 + dW2;
  56.                 B2 = B2 + dB2;
  57.            
  58.                 [dW3,dB3] = learnbp(A2,D3,lr(ind_lr));
  59.                 W3 = W3 + dW3;
  60.                 B3 = B3 + dB3;
  61.            
  62.                 SSE = sumsqr(E);
  63.                 error = [error SSE];
  64.            
  65.                 if SSE < err_goal,
  66.                     epoch = epoch - 1;
  67.                     break;
  68.                 end
  69.                
  70.                 correct = 100*(1-sum((abs(T-A3)>=.5)')/length(T));
  71.                
  72.                
  73.                 if(rem(epoch,disp_freq)==0)
  74.                     %plot([1:length(T)],T,'r',[1:length(T)],A3,'g')
  75.                     %[S1(ind_S1) S2(ind_S2) lr(ind_lr) epoch SSE (100*(1-sum((abs(T-A3)>=.5)')/length(T)))]
  76.                     %pause(1e-100)
  77.                 end
  78.                
  79.                 if(correct == 100)
  80.                     break,
  81.                 end
  82.                
  83.                
  84.             end
  85.            
  86.             rekord = [S1(ind_S1) S2(ind_S2) lr(ind_lr) SSE correct];
  87.            
  88.             rekord
  89.            
  90.             fid = fopen('pabloducato.txt','a+');
  91.             for i=1:size(rekord,1),
  92.                 fprintf(fid, '%g\t', rekord(i,:));
  93.             end
  94.            
  95.             fprintf(fid, '\r\n');
  96.             fclose(fid);
  97.                
  98.            
  99.         end
  100.     end
  101. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top