卷积后特征图大小计算
假设输入图像的尺寸为
H
i
n
×
W
i
n
H_{in} \times W_{in}
Hin×Win,步长stride为
s
s
s, 填充的圈数 padding为
p
p
p,
卷积核的大小为
H
k
×
W
k
H_{k} \times W_{k}
Hk×Wk,则计算经过该卷积后 输出图像(feature map)尺寸
H
o
u
t
×
W
o
u
t
H_{out} \times W_{out}
Hout×Wout公式为
H
o
u
t
=
H
i
n
−
H
k
+
2
×
p
s
+
1
H_{out} = \frac{H_{in} - H_{k} +2 \times p}{s}+1
Hout=sHin−Hk+2×p+1
W o u t = W i n − W k + 2 × p s + 1 W_{out} = \frac{W_{in} - W_{k} +2 \times p}{s}+1 Wout=sWin−Wk+2×p+1
如何快速记住这个公式呢
H
i
n
−
H
k
+
2
×
p
s
\frac{H_{in} - H_{k} +2 \times p}{s}
sHin−Hk+2×p可以看成是路径/步长。卷积核每移动一步,就会得到一个输出。
+1是因为卷积核不移动的时候,也有一个初始的输出。考虑特殊情况,卷积核与原始图像一样大,这样就不需要移动,但也有一个输出。
公式用途
1.用于理解卷积过程中输出量维度的变化。在维度不匹配相关报错的时候,用于检测错误原因。
2.pytorch转onnx的时候对于 padding = "same"不支持。需要手动改成对应的padding。设置
H
o
u
t
=
H
i
n
H_{out}= H_{in}
Hout=Hin,
W
o
u
t
=
W
i
n
W_{out} = W_{in}
Wout=Win可计算padding的值。
参考链接: 教你如何记住卷积后图像大小的公式