caffe中的學習率的衰減機制
阿新 • • 發佈:2018-12-30
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/Julialove102123/article/details/79200158
根據 caffe/src/caffe/proto/caffe.proto 裡的檔案,可以看到它有以下幾種學習率的衰減速機制:
1. fixed: 在訓練過程中,學習率不變;
2. step: 它的學習率的變化就像臺價一樣;step by step 的; 其中的 gamma 與 stepsize需要設定的;
學習率=base lr * gamma^(iter num / step)
3.exp :表示指數型的,其中引數 gamma 需要設定;
學習率=base_lr*gamma^iter
4. inv : 其中引數 gamma 與 power 都需要設定;
學習率 = base_lr*(1+gamma*iter)^(-power)
5.multistep: 可以設定多個 stepvalue的值, 在prototxt裡面也沒有具體介紹, 它由引數 stepsize 與 stepvalue 決定; 它不是每時第刻都去計算 學習率,而是達到我們設定的stepvalue的時候,才去計算(根據方法2中的公式),然後更新學習率; stepvalue 可以設定多個的,下面是 stepvalue的定義;
183 repeated int32 stepvalue = 34;
6.poly :多項式衰減 ,當到達最大次數時, 學習率變為了0;
lr = base_lr * (1 - iter/maxiter )^power
7.sigmoid形的:
lr = base_lr * (1 / (1+e^(-gamma*(iter-stepsize)) ))
。;