如何计算YOLO中卷积层的输出大小?

YOLO Architecture

这是YOLO的架构。我试图自己计算每一层的输出大小,但结果与论文中描述的不符。

例如,在第一个卷积层,输入大小为448×448,但它使用了步长为2的7×7滤波器,根据公式W2=(W1−F+2P)/S+1 = (448 – 7 + 0)/2 + 1,我无法得到整数结果,因此滤波器大小似乎不适合输入大小。

所以有人能解释这个问题吗?我是否遗漏了什么或误解了YOLO的架构?


回答:

正如Hawx Won所说,输入图像增加了额外的3个填充,以下是源代码中是如何运作的。

对于卷积层,如果启用了填充,每一层的填充值将按以下方式计算:

# In parser.cif(pad) padding = size/2;# In convolutional_layer.cl.pad = padding;

其中size是滤波器的形状。

因此,对于第一层:padding = size/2 = 7/2=3

那么第一个卷积层的输出应该是:

output_w = (input_w+2*pad-size)/stride+1 = (448+6-7)/2+1 = 224

output_h = (input_h+2*pad-size)/stride+1 = (448+6-7)/2+1 = 224

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注