卷积神经网络反卷积后尺寸大小计算

卷积神经网络反卷积后尺寸大小计算

  • 反卷积尺寸计算公式
  • 附:证明过程

反卷积尺寸计算公式

H ′ = ( H − 1 ) ∗ S [ 0 ] + K [ 0 ] − 2 ∗ P a d [ 0 ] W ′ = ( W − 1 ) ∗ S [ 1 ] + K [ 1 ] − 2 ∗ P a d [ 1 ] \begin{aligned}\\ H'&= (H - 1)*S[0]+K[0]-2*Pad[0] \\ \\ W' &= (W - 1)*S[1]+K[1]-2*Pad[1] \end{aligned} HW=(H1)S[0]+K[0]2Pad[0]=(W1)S[1]+K[1]2Pad[1]

其中:

  • K K K表示反卷积核大小(kernel_size=(kernel_height,kernel_width))
  • S S S表示反卷积步幅大小(stride_size=(stride_height, stride_width))
  • P a d Pad Pad表示反卷积填充大小(padding_size=(up_down, left_right))
  • H H H表示输入的张量的行长, H ′ H' H表示输出张量的行长
  • W W W表示输入的张量的列长, W ′ W' W表示输出张量的列长

附:证明过程

首先这是正卷积的尺寸计算公式:
H ′ = ( H − K [ 0 ] + 2 ∗ P a d [ 0 ] ) S [ 0 ] + 1 W ’ = ( W − K [ 1 ] + 2 ∗ P a d [ 1 ] ) S [ 1 ] + 1 \begin{aligned}\\ H' &= \frac{(H-K[0] + 2*Pad[0])}{S[0]} + 1 \\ \\ W’ &=\frac{(W-K[1] + 2*Pad[1])}{S[1]} + 1 \end{aligned} HW=S[0](HK[0]+2Pad[0])+1=S[1](WK[1]+2Pad[1])+1

其中:

  • K K K表示正卷积核大小(kernel_size=(kernel_height,kernel_width))
  • S S S表示正卷积步幅大小(stride_size=(stride_height, stride_width))
  • P a d Pad Pad表示正卷积填充大小(padding_size=(up_down, left_right))
  • H H H表示输入的张量的行长, H ′ H' H表示输出张量的行长
  • W W W表示输入的张量的列长, W ′ W' W表示输出张量的列长

将其中的 H 、 W H、W HW看成反卷积后的尺寸大小,将 H 、 W H、W HW由公式中其他变量表示,即可得:
H = ( H ′ − 1 ) ∗ S [ 0 ] + K [ 0 ] − 2 ∗ P a d [ 0 ] W = ( W ′ − 1 ) ∗ S [ 1 ] + K [ 1 ] − 2 ∗ P a d [ 1 ] \begin{aligned}\\ H &= (H' - 1)*S[0]+K[0]-2*Pad[0] \\ \\ W &= (W' - 1)*S[1]+K[1]-2*Pad[1] \end{aligned} HW=(H1)S[0]+K[0]2Pad[0]=(W1)S[1]+K[1]2Pad[1]

再用 H ′ H' H交换 H H H, W ′ W' W交换 W W W,即可得:
H ′ = ( H − 1 ) ∗ S [ 0 ] + K [ 0 ] − 2 ∗ P a d [ 0 ] W ′ = ( W − 1 ) ∗ S [ 1 ] + K [ 1 ] − 2 ∗ P a d [ 1 ] \begin{aligned}\\ H' &= (H - 1)*S[0]+K[0]-2*Pad[0] \\ \\ W' &= (W - 1)*S[1]+K[1]-2*Pad[1] \end{aligned} HW=(H1)S[0]+K[0]2Pad[0]=(W1)S[1]+K[1]2Pad[1]

你可能感兴趣的:(人工智能,深度学习,神经网络)