Network의 layout을 block단위로 정의해놓은 파일
YOLO에는 6type의 layer들이 있다
https://www.youtube.com/watch?v=G5Ej_hwgCjE
https://hnsuk.tistory.com/27
[net]
# Testing
# batch=1
# subdivisions=1
# Training
# 한 번의 iteration 시 사용되는 image set의 크기
batch=64
# mini_batch
subdivisions=8
# input img size
width=512
height=512
channels=3
# gradient descent algorithm (gradient 보정해준다)
momentum=0.949
# weight decay : regularization overfitting 방지, data imbalance 제거 값 커질수록 가중치 값이 작아짐 but 너무 크면 under fitting 발생
decay=0.0005
# agumentation
angle=0
saturation = 1.5
exposure = 1.5
hue=.1
# learning rate : training 시 초기 학습률
learning_rate=0.0013
# burn_in : 해당 training 횟수 동안 learning_rate를 일정한 수치만큼 높힘
burn_in=1000
# training 진행 시마다 처리되는 최대 batch 수
max_batches = 500500
# training 시 lr 조절 방식
policy=steps
# training 시 lr 조정 되는 training 횟수 index
steps=400000,450000
# step시 곱하는 수치
scales=.1,.1
# agumentation
mosaic=1
[convolutional]
batch_normalize=1
filters=64
size=1
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=32
size=1
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=64
size=3
stride=1
pad=1
activation=leaky
batch_normalize : Use or Not
filters : Number of filter to extract feature
size : filter size
stride : filter가 순회할 때의 간격
pad : padding
activation : function to use
[shortcut]
from=-3
activation=linear
activation : function to use
from : -n (shortcut layer output에 n번째 전의 layer를 더해준다)
ResNet에서 사용되는 skip connection과 동일한 역할
[route]
layers = -2
or
[route]
layers = -1,-7
layers :
index 1개 : index에 해당되는 layer를 output
index 2개 : index에 해당되는 2개의 layer의 feature map을 concatnate 한 후 output
[upsample]
stride=2
stride : 값의 배수에 따라 feature map upsampling
[yolo]
# mask : 사용할 anchor box selection
ex) 0, 1, 2 -> (12,16), (19,36), (40,28)
mask = 0,1,2
# pre-defined default bounding box
anchors = 12, 16, 19, 36, 40, 28, 36, 75, 76, 55, 72, 146, 142, 110, 192, 243, 459, 401
classes=80
# number of anchor box
num=9
# randomly crop image(jitter 범위)
jitter=.3
# loss 계산시 thresh hold 기준값
ignore_thresh = .7
# IOU thresh hold 크기 값
truth_thresh = 1
# network-input에 다른 size 사용
random=1
# ...?
scale_x_y = 1.2
iou_thresh=0.213
cls_normalizer=1.0
iou_normalizer=0.07
iou_loss=ciou
nms_kind=greedynms
beta_nms=0.6