1. 程式人生 > >yolo的引數解讀

yolo的引數解讀

一、網路結構圖:
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                           是否隨機確定最後一個預測框