我试图了解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并且存在填充,宽度和高度是否不应该增加2?如果我正确理解的话,内核将遍历输入的所有“像素”加上填充,因此对我来说宽度和高度应增加2 *填充。
我用公式
output_size = ((input_size – kernel_size + 2*padding) / stride) + 1
然后签出。(13-1 + 2 * 1)/ 1 +1 = 15
有人知道我在想什么吗?
先感谢您。
好的,我知道了。
我误解了图层中的pad参数。如果您希望填充为1,则应输入:
padding=1
pad实际上是一个布尔值。设置为1时,层的填充将等于size / 2。
在这种情况下,内核的大小为1,因此填充最终为1/2 = 0(整数运算)。由于没有填充,因此输出的宽度和高度与输入中的相同。
我应该有RTFM。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句