yolo的引數解讀
阿新 • • 發佈:2018-12-10
一、網路結構圖: layer filters size input output 0 conv 32 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 32 1 max 2 x 2 / 2 416 x 416 x 32 -> 208 x 208 x 32 2 conv 64 3 x 3 / 1 208 x 208 x 32 -> 208 x 208 x 64 3 max 2 x 2 / 2 208 x 208 x 64 -> 104 x 104 x 64 4 conv 128 3 x 3 / 1 104 x 104 x 64 -> 104 x 104 x 128 5 conv 64 1 x 1 / 1 104 x 104 x 128 -> 104 x 104 x 64 6 conv 128 3 x 3 / 1 104 x 104 x 64 -> 104 x 104 x 128 7 max 2 x 2 / 2 104 x 104 x 128 -> 52 x 52 x 128 8 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 9 conv 128 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 128 10 conv 256 3 x 3 / 1 52 x 52 x 128 -> 52 x 52 x 256 11 max 2 x 2 / 2 52 x 52 x 256 -> 26 x 26 x 256 12 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 13 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 14 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 15 conv 256 1 x 1 / 1 26 x 26 x 512 -> 26 x 26 x 256 16 conv 512 3 x 3 / 1 26 x 26 x 256 -> 26 x 26 x 512 17 max 2 x 2 / 2 26 x 26 x 512 -> 13 x 13 x 512 18 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 19 conv 512 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 512 20 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 21 conv 512 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 512 22 conv 1024 3 x 3 / 1 13 x 13 x 512 -> 13 x 13 x1024 23 conv 1024 3 x 3 / 1 13 x 13 x1024 -> 13 x 13 x1024 24 conv 1024 3 x 3 / 1 13 x 13 x1024 -> 13 x 13 x1024 25 route 16 26 reorg / 2 26 x 26 x 512 -> 13 x 13 x2048 27 route 26 24 28 conv 1024 3 x 3 / 1 13 x 13 x3072 -> 13 x 13 x1024 29 conv 125 1 x 1 / 1 13 x 13 x1024 -> 13 x 13 x 125 30 detection 二、配置引數的解讀: [net] batch=64 每batch個樣本更新一次引數。 subdivisions=8 如果記憶體不夠大,將batch分割為subdivisions個子batch,每個子batch的大小為batch/subdivisions。 在darknet程式碼中,會將batch/subdivisions命名為batch。 height=416 input影象的高 width=416 Input影象的寬 channels=3 Input影象的通道數 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 學習率變化的比例,累計相乘 [convolutional] 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 池化步進 [convolutional] batch_normalize=1 filters=64 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 ...... ...... ####### [convolutional] batch_normalize=1 size=3 stride=1 pad=1 filters=1024 activation=leaky [convolutional] batch_normalize=1 size=3 stride=1 pad=1 filters=1024 activation=leaky [route] 拼接層,將兩個層的資料進行合併 layers=-9 [reorg] the reorg layer is to make these features match the feature map size at the later layer. The end feature map is 13x13, the feature map from earlier is 26x26x512. The reorg layer maps the 26x26x512 feature map onto a 13x13x2048 feature map so that it can be concatenated with the feature maps at 13x13 resolution. stride=2 [route] 拼接層,將前一層和前三層拼接起來 layers=-1,-3 [convolutional] batch_normalize=1 size=3 stride=1 pad=1 filters=1024 activation=leaky [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 softmax=1 使用softmax做啟用函式 jitter=.2 通過抖動增加噪聲來抑制過擬合 rescore=1 暫理解為一個開關,非0時通過重打分來調整l.delta(預測值與真實值的差) object_scale=5 暫理解為計算損失時預測框中有物體時的權重 noobject_scale=1 暫理解為計算損失時預測框中無物體時的權重 class_scale=1 暫理解為計算類別損失時的權重 coord_scale=1 暫理解為計算損失時座標偏差的權重 absolute=1 thresh = .6 random=0 是否隨機確定最後一個預測框