Caffe傻瓜系列(11):caffe中的lr_policy選擇

在自己配置訓練網絡時的solver文件中這個參數選擇有好多種策略。

接下來看看caffe.proto文件的這個參數:

[cpp] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. // The learning rate decay policy. The currently implemented learning rate  
  2. // policies are as follows:  
  3. //    - fixed: always return base_lr.  
  4. //    - step: return base_lr * gamma ^ (floor(iter / step))  
  5. //    - exp: return base_lr * gamma ^ iter  
  6. //    - inv: return base_lr * (1 + gamma * iter) ^ (- power)  
  7. //    - multistep: similar to step but it allows non uniform steps defined by  
  8. //      stepvalue  
  9. //    - poly: the effective learning rate follows a polynomial decay, to be  
  10. //      zero by the max_iter. return base_lr (1 - iter/max_iter) ^ (power)  
  11. //    - sigmoid: the effective learning rate follows a sigmod decay  
  12. //      return base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))  
  13. //  
  14. // where base_lr, max_iter, gamma, step, stepvalue and power are defined  
  15. // in the solver parameter protocol buffer, and iter is the current iteration.  
如果安裝digists的話,可以按照here 進行選。

沒裝,按matlab實現:

[cpp] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. iter=1:50000;  
  2. max_iter=50000;  
  3. base_lr=0.01;  
  4. gamma=0.0001;  
  5. power=0.75;  
  6. step_size=5000;  
  7. % - fixed: always return base_lr.  
  8. lr=base_lr*ones(1,50000);  
  9. subplot(2,3,1)  
  10. plot(lr)  
  11. title('fixed')  
  12. % - step: return base_lr * gamma ^ (floor(iter / step))  
  13. lr=base_lr .* gamma.^(floor(iter./10000));  
  14. subplot(2,3,2)  
  15. plot(lr)  
  16. title('step')  
  17. % - exp: return base_lr * gamma ^ iter  
  18. lr=base_lr * gamma .^ iter;  
  19. subplot(2,3,3)  
  20. plot(lr)  
  21. title('exp')  
  22. % - inv: return base_lr * (1 + gamma * iter) ^ (- power)  
  23. lr=base_lr.*(1./(1+gamma.*iter).^power);  
  24. subplot(2,3,4)  
  25. plot(lr)  
  26. title('inv')  
  27. % - multistep: similar to step but it allows non uniform steps defined by  
  28. % stepvalue  
  29. % - poly: the effective learning rate follows a polynomial decay, to be  
  30. % zero by the max_iter. return base_lr (1 - iter/max_iter) ^ (power)  
  31. lr=base_lr *(1 - iter./max_iter) .^ (power);  
  32. subplot(2,3,5)  
  33. plot(lr)  
  34. title('poly')  
  35. % - sigmoid: the effective learning rate follows a sigmod decay  
  36. return base_lr ( 1/(1 + exp(-gamma * (iter - stepsize))))  
  37. lr=base_lr *( 1./(1 + exp(-gamma * (iter - step_size))));  
  38. subplot(2,3,6)  
  39. plot(lr)  
  40. title('sigmoid')  
結果:


原文鏈接:http://blog.csdn.net/langb2014/article/details/51274376
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章