了解奇怪的YOLO卷积层输出大小

时间:2020-06-20 08:36:02

标签: neural-network conv-neural-network yolo darknet

我试图了解Darknet的工作原理,并且正在查看 yolov3-tiny 配置文件,特别是layer number 13 (line 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并且存在填充,宽度和高度是否不应增加2?如果我理解正确,内核将遍历输入的所有“像素”加上填充,因此对我来说宽度和高度应增加2 *填充。

我使用了公式

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

,然后签出。 (13-1 + 2 * 1)/ 1 + 1 = 15

有人知道我想念什么吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

好的,我知道了。

我误解了图层中的 pad 参数。如果您希望填充为1,则应输入:

padding=1

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

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

我应该有RTFM。

相关问题