【问题标题】:Understanding weird YOLO convolutional layer output size了解奇怪的 YOLO 卷积层输出大小
【发布时间】:2020-06-20 08:36:02
【问题描述】:

我正在尝试了解 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*padding 是有意义的。

我用了公式

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

然后检查。 (13 - 1 + 2 * 1) / 1 + 1 = 15

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

提前谢谢你。

【问题讨论】:

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


    【解决方案1】:

    我想通了。

    我误解了图层中的 pad 参数。如果你希望填充为 1,你应该写:

    padding=1
    

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

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

    我应该有 RTFM。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-12
      • 2019-05-03
      • 2018-02-10
      • 2018-06-20
      • 2021-04-09
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多