Advertisement
Guest User

Untitled

a guest
May 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.63 KB | None | 0 0
  1. clear all
  2. close all
  3. nntwarn off
  4.  
  5. load dane.txt
  6.  
  7. P = dane(:, 1:34);
  8. T = dane(:, 35);
  9.  
  10. maxP=max(P');
  11. minP=min(P');
  12. Pn=zeros(size(P));
  13. for i=1:length(maxP),
  14. Pn(i,:) = (1-(-1))*(P(i,:)-minP(i))/(maxP(i)-minP(i)) + (-1);
  15. end
  16.  
  17. P = P';
  18. Pn = Pn';
  19. T = T';
  20.  
  21. %maxP=max(P);
  22. %Pn=zeros(size(P);
  23. %for i=1:length(maxP),
  24. %Pn(:,i)=P(:,i)/maxP(i);
  25. %end
  26.  
  27. %S1_vec = [10:5:30];
  28. S1_vec = [2:1:11];
  29. S2_vec = S1_vec;
  30. lr_inc_vec = [ 1.01:0.02:1.07];
  31. lr_dec_vec = [.5:.1:.9];
  32. mc_vec = [.1:.2:.9 .99];
  33. er_vec = [1.02:0.01:1.06];
  34. % TP(5) - Learning rate increase, default = 1.05. %FOR
  35. % TP(6) - Learning rate decrease, default = 0.7. %FOR
  36. % TP(7) - Momentum constant, default = 0.9. %FOR
  37. % TP(8) - Maximum error ratio, default = 1.04. %FOR
  38. % q = zeros(length(S1_vec),length(S2_vec),length(lr_inc_vec),length(lr_dec_vec), length(mc_vec),length(er_vec));
  39. liczba_petli = length(S1_vec)*length(S2_vec)*length(lr_inc_vec)*...
  40. length(lr_dec_vec)*length(er_vec)*length(mc_vec);
  41. ind_petli = 0;
  42. od_petli = 0;
  43. disp_freq = 1000; % frequency of progress displays (in epochs).
  44. max_epoch = 1000; % maximum number of epochs.
  45. err_goal = .25; % sum-squared error goal.
  46. lr = 1e-4; % learning rate.
  47. q=0;
  48. qmax=0;
  49.  
  50. size(Pn)
  51. size(P)
  52. size(T)
  53.  
  54. for ind_S1=1:length(S1_vec), %S1 = 15; %FOR
  55. %for ind_S2=1:ind_S1, %S2 = 11; %FOR
  56. [S3,Q] = size(T);
  57. [W1,B1,W2,B2] = initff(Pn,S1_vec(ind_S1),'tansig',S3,'purelin');
  58. %%%% ,W3,B3 S2_vec(ind_S2),'tansig'
  59. save Wagi_Pierwszy W1 W2 B1 B2
  60.  
  61. for ind_lr_inc=1:length(lr_inc_vec),
  62. for ind_lr_dec=1:length(lr_dec_vec),
  63. for ind_mc=1:length(mc_vec),
  64. for ind_er=1:length(er_vec),
  65. if od_petli <= ind_petli,
  66. load Wagi_Pierwszy
  67.  
  68. [W1,B1,W2,B2] = initff(Pn,S1_vec(ind_S1),'tansig',S3,'purelin');
  69. 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)];
  70. [W1,B1,W2,B2,TE,TR] = trainbpx(W1,B1,'tansig',W2,B2,'purelin',Pn,T,TP);
  71. a = simuff(Pn,W1,B1,'tansig',W2,B2,'purelin');
  72.  
  73. % q(ind_S1, ind_S2, ind_lr_inc, ind_lr_dec, ind_mc, ind_er)=...
  74. % (1-sum(abs(T-a)>0.5)/length(P))*100;
  75. q=(1-sum(abs(T-a)>0.5)/length(Pn))*100;
  76.  
  77. if q>qmax,
  78. qmax=q;
  79. % ind_S1_max =
  80. % ind_S2_max =
  81. end
  82. end
  83.  
  84. ind_petli = ind_petli + 1;
  85. % [ind_petli/liczba_petli*100 q(ind_S1, ind_S2, ind_lr_inc, ind_lr_dec, ind_mc, ind_er)]
  86. if od_petli < ind_petli,
  87. [ind_petli/liczba_petli*100 q qmax]
  88. %oblicz SSE i wprowadz do zmiennej wyniki
  89. SSE_blad=TR(2*TE+1);
  90. %ponizej
  91. 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];
  92. save Wyniki_Pierwszy wyniki
  93. %{S2_vec(ind_S2),
  94. end
  95. end
  96. end
  97. end
  98. end
  99. end
  100. %end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement