理解怪异的YOLO卷积层输出大小

问题描述 投票:0回答:2

我试图了解 Darknet 的工作原理,我正在查看 yolov3-tiny 配置文件,特别是第 13 层(第 107 行)

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

内核的大小为1x1,步长为1,填充也为1。 当我使用darknet加载网络时,它表明输出宽度和高度与输入相同:

13 conv    256       1 x 1/ 1     13 x  13 x1024 ->   13 x  13 x 256

但是,既然内核是1x1并且有padding,宽度和高度不应该增加2吗?如果我理解正确的话,内核将遍历输入的所有“像素”加上填充,因此宽度和高度应该增加 2*填充对我来说是有意义的。

我用了公式

output_size = ((input_size – kernel_size + 2*padding) / stride) + 1

它检查出来了。 (13 - 1 + 2 * 1) / 1 + 1 = 15

有人知道我错过了什么吗?

提前谢谢您。

neural-network conv-neural-network yolo darknet
2个回答
1
投票

我明白了。

我误解了图层中的pad参数。如果你想让padding为1,你应该这样写:

padding=1

pad实际上是一个布尔值。当设置为 1 时,图层的填充将等于 size / 2

在本例中,内核的大小为 1,因此填充最终为 1/2 = 0(整数运算)。由于没有填充,输出的宽度和高度与输入中的相同。

我应该有RTFM。


0
投票

哪里可以找到说明书????

© www.soinside.com 2019 - 2024. All rights reserved.