優化:調參技巧
阿新 • • 發佈:2019-01-07
batch=64 每batch個樣本更新一次引數。
subdivisions=8 如果記憶體不夠大,將batch分割為subdivisions個子batch,每個子batch的大小
momentum=0.9 動量
decay=0.0005 權重衰減正則項,防止過擬合
angle=0 通過旋轉角度來生成更多訓練樣本
saturation = 1.5 通過調整飽和度來生成更多訓練樣本
exposure = 1.5 通過調整曝光量來生成更多訓練樣本
hue=.1 通過調整色調來生成更多訓練樣本
learning_rate=0.0001 初始學習率
max_batches = 45000 訓練達到max_batches後停止學習
policy=steps 調整學習率的policy,有如下policy:CONSTANT, STEP, EXP, POLY, STEPS,
SIG, RANDOM
steps=100,25000,35000 根據batch_num調整學習率
scales=10,.1,.1 學習率變化的比例,累計相乘
batch_normalize=1 是否做BN
filters=32 輸出多少個特徵圖
size=3 卷積核的尺寸
stride=1 做卷積運算的步長
pad=1 如果pad為0,padding由 padding引數指定。如果pad為1,padding大小為size/2
activation=leaky 啟用函式:logistic,loggy,relu,elu,relie,plse,hardtan,lhtan,linear,ramp,leaky,tanh,stair
[maxpool]
size=2 池化層尺寸
stride=2 池化步進
......
#######
[route] 從網路的前幾層獲取細粒度特徵
layers=-9
[reorg] passthrougth layer: 使得這些特徵和後面特徵圖的大小匹配r
stride=2
[route]
layers=-1,-3 route層起連線作用,reorg層來match特徵圖尺寸。
...
[convolutional]
size=1
stride=1
pad=1
filters=125 region前最後一個卷積層的filters數是特定的,計算公式為filter=num*(classes+5)
5的意義是5個座標,論文中的tx,ty,tw,th,to
activation=linear
[region]
anchors = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52 預選框,可以手工挑選,也可以通過k means 從訓練樣本中學出
bias_match=1
classes=20 網路需要識別的物體種類數
coords=4 每個box的4個座標tx,ty,tw,th
num=5 每個grid cell預測幾個box,和anchors的數量一致。當想要使用更多anchors時需要調大num,且如果調大num後訓練時Obj趨近0的話可以嘗試調大object_scale
softmax=1 使用softmax做啟用函式
jitter=.2 通過抖動增加噪聲來抑制過擬合
rescore=1 暫理解為一個開關,非0時通過重打分來調整l.delta(預測值與真實值的差)
object_scale=5 柵格中有物體時,bbox的confidence loss對總loss計算貢獻的權重
noobject_scale=1 柵格中沒有物體時,bbox的confidence loss對總loss計算貢獻的權重
class_scale=1 類別loss對總loss計算貢獻的權重
coord_scale=1 bbox座標預測loss對總loss計算貢獻的權重
absolute=1
thresh = .6
random=0 random為1時會啟用Multi-Scale Training,隨機使用不同尺寸的圖片進行訓練。