卷积操作尺寸计算公式
卷积操作尺寸计算公式
卷积操作尺寸计算公式
在深度学习和图像处理中,卷积操作会改变输入图像的尺寸。计算卷积后图像尺寸的通用公式取决于以下几个参数:
- 输入图像尺寸:通常表示为高度 H in H_{\text{in}} Hin 和宽度 W in W_{\text{in}} Win(单位:像素)。
- 卷积核大小:通常表示为高度 K h K_h Kh 和宽度 K w K_w Kw(单位:像素)。如果卷积核是正方形的(常见情况),则 K h = K w = K K_h = K_w = K Kh=Kw=K。
- 步幅(stride):卷积核在图像上移动的步长,通常表示为高度方向步幅 S h S_h Sh 和宽度方向步幅 S w S_w Sw。如果步幅相同,则 S h = S w = S S_h = S_w = S Sh=Sw=S。
- 填充(padding):在图像边缘添加的像素数,通常表示为高度方向填充 P h P_h Ph 和宽度方向填充 P w P_w Pw。如果填充对称,则 P h = P w = P P_h = P_w = P Ph=Pw=P。填充可以是零填充(常见)或其他方式。
通用公式
卷积后输出图像的高度 H out H_{\text{out}} Hout 和宽度 W out W_{\text{out}} Wout 的计算公式如下:
H out = ⌊ H in + 2 P h − K h S h ⌋ + 1 H_{\text{out}} = \left\lfloor \frac{H_{\text{in}} + 2P_h - K_h}{S_h} \right\rfloor + 1 Hout=⌊ShHin+2Ph−Kh⌋+1
W out = ⌊ W in + 2 P w − K w S w ⌋ + 1 W_{\text{out}} = \left\lfloor \frac{W_{\text{in}} + 2P_w - K_w}{S_w} \right\rfloor + 1 Wout=⌊SwWin+2Pw−Kw⌋+1
其中:
- ⌊ ⋅ ⌋ \left\lfloor \cdot \right\rfloor ⌊⋅⌋ 表示向下取整(floor 函数),确保结果为整数。
- 公式假设卷积操作是标准的(无膨胀或其他修改)。
通用公式(含Dilation)
当卷积操作包含膨胀率(dilation rate)时,卷积核的感受野会扩大,导致输出尺寸进一步变化。
设:
- 输入图像尺寸:高度 H in H_{\text{in}} Hin,宽度 W in W_{\text{in}} Win
- 卷积核尺寸:高度 K h K_h Kh,宽度 K w K_w Kw
- 膨胀率:高度方向 D h D_h Dh,宽度方向 D w D_w Dw(通常 D h = D w = D D_h = D_w = D Dh=Dw=D)
- 步幅:高度方向 S h S_h Sh,宽度方向 S w S_w Sw
- 填充:高度方向 P h P_h Ph,宽度方向 P w P_w Pw
输出尺寸计算公式为:
H
out
=
⌊
H
in
+
2
P
h
−
[
(
K
h
−
1
)
×
D
h
+
1
]
S
h
⌋
+
1
W
out
=
⌊
W
in
+
2
P
w
−
[
(
K
w
−
1
)
×
D
w
+
1
]
S
w
⌋
+
1
\boxed{ \begin{aligned} H_{\text{out}} &= \left\lfloor \frac{H_{\text{in}} + 2P_h - [\ (K_h - 1) \times D_h + 1\ ]}{S_h} \right\rfloor + 1 \\ W_{\text{out}} &= \left\lfloor \frac{W_{\text{in}} + 2P_w - [\ (K_w - 1) \times D_w + 1\ ]}{S_w} \right\rfloor + 1 \end{aligned} }
HoutWout=⌊ShHin+2Ph−[ (Kh−1)×Dh+1 ]⌋+1=⌊SwWin+2Pw−[ (Kw−1)×Dw+1 ]⌋+1
关键说明
-
膨胀后的卷积核有效尺寸:
- 膨胀操作通过在卷积核元素间插入 D − 1 D-1 D−1 个空格来扩大感受野。
- 膨胀后的有效高度: K h ′ = ( K h − 1 ) × D h + 1 K_h' = (K_h - 1) \times D_h + 1 Kh′=(Kh−1)×Dh+1
- 膨胀后的有效宽度: K w ′ = ( K w − 1 ) × D w + 1 K_w' = (K_w - 1) \times D_w + 1 Kw′=(Kw−1)×Dw+1
- 公式中的 [ ( K h − 1 ) × D h + 1 ] [\ (K_h - 1) \times D_h + 1\ ] [ (Kh−1)×Dh+1 ] 和 [ ( K w − 1 ) × D w + 1 ] [\ (K_w - 1) \times D_w + 1\ ] [ (Kw−1)×Dw+1 ] 即膨胀后的有效核尺寸。
-
公式逻辑:
- 分子部分:
H in + 2 P h − K h ′ H_{\text{in}} + 2P_h - K_h' Hin+2Ph−Kh′(宽度同理)
表示输入尺寸加填充后,减去膨胀后的有效核尺寸。 - 分母部分:除以步幅 S h S_h Sh(或 S w S_w Sw)。
- 取整操作 ⌊ ⋅ ⌋ \left\lfloor \cdot \right\rfloor ⌊⋅⌋:确保输出为整数像素位置。
- +1:包含卷积核起始位置对应的输出。
- 分子部分:
-
当膨胀率 D = 1 D=1 D=1 时:
公式退化为标准卷积(无膨胀),因为:
K h ′ = ( K h − 1 ) × 1 + 1 = K h K_h' = (K_h - 1) \times 1 + 1 = K_h Kh′=(Kh−1)×1+1=Kh。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)