1. 程式人生 > >YOLOV2配置檔案的理解

YOLOV2配置檔案的理解

    上篇部落格為大家介紹了在使用深度學習框架時,調節什麼樣的引數才能夠使得訓練出來的引數更具有魯棒性以及其準確率更高。下面將給大家介紹YOLOV2配置檔案,我們可以從中看到上篇部落格中很多方法YOLOV2都有用到。

[net]
# Testing
batch=1
subdivisions=1
# Training
# batch=64              #每batch個樣本更新一次引數
# subdivisions=8		#如果記憶體不夠大,通常將一個batch分為subdivisions份,在darknet中會將batch/subdivisions認為成batch
height=416				#輸入圖片的高度
width=416				#輸入圖片的寬度
channels=3				#輸入圖片的通道數
momentum=0.9			#動量(其用來做引數的更新,調參用的)
decay=0.0005			#權重衰減正則化,為了防止過擬合
angle=0					#圖片旋轉的角度,來生成更多的訓練樣本
saturation = 1.5		#調整飽和度,來產生更多的訓練樣本
exposure = 1.5			#調整曝光度,來產生更多的訓練樣本
hue=.1					#調整色度,。。。。。。。

learning_rate=0.001		#學習率,即訓練的時候初始值
burn_in=1000			??
max_batches = 80200		#訓練的最高次數,即batches數量,到達該值停止訓練
policy=steps			#學習率更新的方法(隨步數進行衰減)
steps=40000,60000		#在40000,60000的時候進行調整學習率
scales=.1,.1			#每次更改的學習率為上一個學習率*scales,為當前步的學習率

[convolutional]			#卷積層
batch_normalize=1		#在訓練初始,進行batch_normalize,其能夠防止過擬合,規範化模型
filters=32				#卷積後輸出的特徵圖個數
size=3					#卷積核的尺寸
stride=1				#卷積的步長
pad=1					#當pad為0時,padding由padding的引數決定,反之,當pad為1時,padding大小為size/2
activation=leaky		#使用的啟用函式

[maxpool]				#池化層
size=2					#池化的核的大小
stride=2				#池化的步長
#################
[convolutional]
batch_normalize=1
filters=64
size=3
stride=1
pad=1
activation=leaky

[maxpool]
size=2
stride=2

[route]					#使用的是Fine-Grained Features
layers=-9				#將上個卷積層的輸出匯入到network中(自己認為就是將該層前9層的得到的featuremap取到)

[convolutional]
batch_normalize=1
size=1
stride=1
pad=1
filters=64
activation=leaky

[reorg]					#將上個卷積層的輸入與最後輸出的featuremap做concat(閱讀YOLOV2論文後,我認為該層就是passthrough層,將兩層的featuremap做一個concat)
stride=2

[route]                                  #進行將兩層的featuremap做concat
layers=-1,-4

[convolutional]
batch_normalize=1
size=3
stride=1
pad=1
filters=1024
activation=leaky

[convolutional]
size=1
stride=1
pad=1
filters=35				#region的前一個filters的數量是根據種類以及anchor來確定的:filters=anchor_boxnum*(class+5)
activation=linear


[region]
anchors =  1.3221, 1.73145, 3.19275, 4.00944, 5.05587, 8.09892, 9.47112, 4.84053, 11.2364, 10.0071#anchor boxes的尺度比
bias_match=1
classes=2				#目標種類個數
coords=4				#每個box的座標
num=5					#anchor的數量
softmax=1				#使用softmax來作為啟用函式
jitter=.3				#通過抖動增加噪聲,防止過擬合
rescore=1				#非0時進行重新打分

object_scale=5
noobject_scale=1
class_scale=1
coord_scale=1

absolute=1
thresh = .6
random=1