SHARE
TWEET

MARIUSZ

pabloducato Jun 23rd, 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 = 500; %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 = [5:1:50]; %2:1:30
  25. S2 = S1;
  26.  
  27. lr = [0.002 0.001 0.0009 0.0006 0.0003 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.                     %plot([1:length(T)],T,'r',[1:length(T)],A3,'g')
  76.                     %[S1(ind_S1) S2(ind_S2) lr(ind_lr) epoch SSE (100*(1-sum((abs(T-A3)>=.5)')/length(T)))]
  77.                     %pause(1e-100)
  78.                 end
  79.                
  80.                 if(correct == 100)
  81.                     break,
  82.                 end
  83.                
  84.                
  85.             end
  86.            
  87.             rekord = [S1(ind_S1) S2(ind_S2) lr(ind_lr) SSE correct];
  88.            
  89.             rekord
  90.            
  91.             fid = fopen('pabloducatozmiananeuronow.txt','a+');
  92.             for i=1:size(rekord,1),
  93.                 fprintf(fid, '%g\t', rekord(i,:));
  94.             end
  95.            
  96.             fprintf(fid, '\r\n');
  97.             fclose(fid);
  98.                
  99.            
  100.         end
  101.     end
  102. 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