天天看點

py-faster-rcnn中的solver檔案注解

py-faster-rcnn-master/models/pascal_voc/ZF/faster_rcnn_alt_opt 目錄下含有如下圖所示檔案:

py-faster-rcnn中的solver檔案注解

含有solver的是網絡求解及超參數配置檔案,對其中的stage2_fast_rcnn_solver30k40k.pt檔案,在做了一些注解,以備用檢視:

參考:https://blog.csdn.net/zchang81/article/details/73088356

#https://blog.csdn.net/zchang81/article/details/73088356
train_net: "models/pascal_voc/ZF/faster_rcnn_alt_opt/stage2_fast_rcnn_train.pt"

base_lr: 0.001  #網絡最開始的學習率
lr_policy: "step" #采用的學習政策,由于參數設定解釋比較多,放在最後面
gamma: 0.1 #和學習率相關的,lr_policy中包含此參數的話,需要進行設定,一般是一個實數
stepsize: 30000 #和"step"聯合使用,訓練經過stepsize後,改變學習率
display: 20 #間隔20次疊代後對結果進行輸出
average_loss: 100 #取100次foward的loss作平均,進行顯示輸出。
momentum: 0.9 #動量,上一次梯度更新的權重
weight_decay: 0.0005 #權重衰減項,用于防止過拟合。

# We disable standard caffe solver snapshotting and implement our own snapshot
# function
snapshot: 0 #訓練快照,确定多久儲存一次model和solverstate
# We still use the snapshot prefix, though
snapshot_prefix: "zf_fast_rcnn" #snapshot的字首,就是model和solverstate的命名字首,也代表路徑


######################################## lr_policy ###########################################
#lr_policy:學習率應該遵守什麼樣的變化規則,這個參數對應的是字元串,選項及說明如下:
“step” - 需要設定一個stepsize參數,傳回base_lr * gamma ^ ( floor ( iter / stepsize ) ),iter為目前疊代次數
“multistep” - 和step相近,但是需要stepvalue參數,step是均勻等間隔變化,而multistep是根據stepvalue的值進行變化
“fixed” - 保持base_lr不變
“exp” - 傳回base_lr * gamma ^ iter, iter為目前疊代次數
“poly” - 學習率進行多項式誤差衰減,傳回 base_lr ( 1 - iter / max_iter ) ^ ( power )
“sigmoid” - 學習率進行sigmod函數衰減,傳回 base_lr ( 1/ 1+exp ( -gamma * ( iter - stepsize ) ) )
           

其他solver檔案差不多,就不必注解了