Структура сети описана в файле .cfg (см. Ниже).
«Блок» начинается с [.....]
Все используемые фильтры:
- 3x3 с шагом 1 и отступом 1 -> не изменяет высоту и ширину вывода
1x1 слоев с шагом 1 и отступом = 1 -> карта объектов = (ширина + 2, высота + 2, глубина)
Upsample layer -> Я читал, что он умножает в 2 раза высоту и ширину
маршрут:
- если только 1 параметр: (т. Е. «-4»: перед этим слоем маршрута берется карта объектов 4-го слоя)
- если 2 параметра: (т.е. -1,8: он берет карту объектов предыдущего слоя и объединяет ее с картой объектов 8-го уровня сети)
Я не понимаю конкатенацию, применяемую "[route] Layers: -1,8", потому что, если я прав, это объединяет 32x32x ... с 26x26x ..., что технически невозможно, верно?
Я переписал cfg-файл, чтобы его было проще визуализировать. Можете ли вы сказать мне, если моя транскрипция правильная и как работает эта конкатенация? (Карта результатов, которую я не понимаю, написана красным.)
моя транскрипция файла cfg
[\[net\]
# Testing
batch=1
subdivisions=1
# Training
# batch=64
# subdivisions=2
width=416
height=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 = 500200
policy=steps
steps=400000,450000
scales=.1,.1
\[convolutional\]
batch_normalize=1
filters=16
size=3
stride=1
pad=1
activation=leaky
\[maxpool\]
size=2
stride=2
\[convolutional\]
batch_normalize=132
filters=32
size=3
stride=1
pad=1
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
\[convolutional\]
batch_normalize=1
filters=128
size=3
stride=1
pad=1
activation=leaky
\[maxpool\]
size=2
stride=2
\[convolutional\]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
\[maxpool\]
size=2
stride=2
\[convolutional\]
batch_normalize=1
filters=512
size=3
stride=1
pad=1
activation=leaky
\[maxpool\]
size=2
stride=1
\[convolutional\]
batch_normalize=1
filters=1024
size=3
stride=1
pad=1
activation=leaky
###########
\[convolutional\]
batch_normalize=1
filters=256
size=1
stride=1
pad=1
activation=leaky
\[convolutional\]
batch_normalize=1
filters=512
size=3
stride=1
pad=1
activation=leaky
\[convolutional\]
size=1
stride=1
pad=1
filters=255
activation=linear
\[yolo\]
mask = 3,4,5
anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319
classes=80
num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
\[route\]
layers = -4
\[convolutional\]
batch_normalize=1
filters=128
size=1
stride=1
pad=1
activation=leaky
\[upsample\]
stride=2
\[route\]
layers = -1, 8
\[convolutional\]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
\[convolutional\]
size=1
stride=1
pad=1
filters=255
activation=linear
\[yolo\]
mask = 0,1,2
anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319
classes=80
num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1