1. 程式人生 > >caffe中的學習率的衰減機制

caffe中的學習率的衰減機制

 

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 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)

clip_image002[5]

3.exp :表示指數型的,其中引數 gamma 需要設定;

clip_image002[7]

學習率=base_lr*gamma^iter

 

4. inv : 其中引數 gamma 與 power 都需要設定;

clip_image002[9]

學習率 = base_lr*(1+gamma*iter)^(-power)

 

5.multistep: 可以設定多個 stepvalue的值, 在prototxt裡面也沒有具體介紹, 它由引數 stepsize 與 stepvalue 決定; 它不是每時第刻都去計算 學習率,而是達到我們設定的stepvalue的時候,才去計算(根據方法2中的公式),然後更新學習率; stepvalue 可以設定多個的,下面是 stepvalue的定義;

183   repeated int32 stepvalue = 34;

6.poly :多項式衰減 ,當到達最大次數時, 學習率變為了0;

  

clip_image002[11]

lr = base_lr * (1 - iter/maxiter )^power

 

7.sigmoid形的:

clip_image002[13]

lr = base_lr * (1 / (1+e^(-gamma*(iter-stepsize)) ))

。;