卷积操作尺寸计算公式
卷积操作尺寸计算公式
- 卷积操作尺寸计算公式
- 通用公式
- 通用公式(含Dilation)
- 关键说明
卷积操作尺寸计算公式
在深度学习和图像处理中,卷积操作会改变输入图像的尺寸。计算卷积后图像尺寸的通用公式取决于以下几个参数:
- 输入图像尺寸:通常表示为高度 HinH_{\text{in}}Hin 和宽度 WinW_{\text{in}}Win(单位:像素)。
- 卷积核大小:通常表示为高度 KhK_hKh 和宽度 KwK_wKw(单位:像素)。如果卷积核是正方形的(常见情况),则 Kh=Kw=KK_h = K_w = KKh=Kw=K。
- 步幅(stride):卷积核在图像上移动的步长,通常表示为高度方向步幅 ShS_hSh 和宽度方向步幅 SwS_wSw。如果步幅相同,则 Sh=Sw=SS_h = S_w = SSh=Sw=S。
- 填充(padding):在图像边缘添加的像素数,通常表示为高度方向填充 PhP_hPh 和宽度方向填充 PwP_wPw。如果填充对称,则 Ph=Pw=PP_h = P_w = PPh=Pw=P。填充可以是零填充(常见)或其他方式。
通用公式
卷积后输出图像的高度 HoutH_{\text{out}}Hout 和宽度 WoutW_{\text{out}}Wout 的计算公式如下:
Hout=⌊Hin+2Ph−KhSh⌋+1H_{\text{out}} = \left\lfloor \frac{H_{\text{in}} + 2P_h - K_h}{S_h} \right\rfloor + 1 Hout=⌊ShHin+2Ph−Kh⌋+1
Wout=⌊Win+2Pw−KwSw⌋+1W_{\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)时,卷积核的感受野会扩大,导致输出尺寸进一步变化。
设:
- 输入图像尺寸:高度 HinH_{\text{in}}Hin,宽度 WinW_{\text{in}}Win
- 卷积核尺寸:高度 KhK_hKh,宽度 KwK_wKw
- 膨胀率:高度方向 DhD_hDh,宽度方向 DwD_wDw(通常 Dh=Dw=DD_h = D_w = DDh=Dw=D)
- 步幅:高度方向 ShS_hSh,宽度方向 SwS_wSw
- 填充:高度方向 PhP_hPh,宽度方向 PwP_wPw
输出尺寸计算公式为:
Hout=⌊Hin+2Ph−[(Kh−1)×Dh+1]Sh⌋+1Wout=⌊Win+2Pw−[(Kw−1)×Dw+1]Sw⌋+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−1D-1D−1 个空格来扩大感受野。
- 膨胀后的有效高度:Kh′=(Kh−1)×Dh+1K_h' = (K_h - 1) \times D_h + 1Kh′=(Kh−1)×Dh+1
- 膨胀后的有效宽度:Kw′=(Kw−1)×Dw+1K_w' = (K_w - 1) \times D_w + 1Kw′=(Kw−1)×Dw+1
- 公式中的 [(Kh−1)×Dh+1][\ (K_h - 1) \times D_h + 1\ ][ (Kh−1)×Dh+1 ] 和 [(Kw−1)×Dw+1][\ (K_w - 1) \times D_w + 1\ ][ (Kw−1)×Dw+1 ] 即膨胀后的有效核尺寸。
-
公式逻辑:
- 分子部分:
Hin+2Ph−Kh′H_{\text{in}} + 2P_h - K_h'Hin+2Ph−Kh′(宽度同理)
表示输入尺寸加填充后,减去膨胀后的有效核尺寸。 - 分母部分:除以步幅 ShS_hSh(或 SwS_wSw)。
- 取整操作 ⌊⋅⌋\left\lfloor \cdot \right\rfloor⌊⋅⌋:确保输出为整数像素位置。
- +1:包含卷积核起始位置对应的输出。
- 分子部分:
-
当膨胀率 D=1D=1D=1 时:
公式退化为标准卷积(无膨胀),因为:
Kh′=(Kh−1)×1+1=KhK_h' = (K_h - 1) \times 1 + 1 = K_hKh′=(Kh−1)×1+1=Kh。