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

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

1、无填充

1.1 公式1

H ′ = ( H − K [ 0 ] ) S [ 0 ] + 1 W ’ = ( W − K [ 1 ] ) S [ 1 ] + 1 \begin{aligned}\\ H' &= \frac{(H-K[0])}{S[0]} + 1 \\ \\ W’ &=\frac{(W-K[1])}{S[1]} + 1 \end{aligned} H′W’​=S[0](H−K[0])​+1=S[1](W−K[1])​+1​
其中:

  • K K K表示卷积核大小(kernel_size=(kernel_height,kernel_width))
  • S S S表示步幅大小(stride_size=(stride_height, stride_width))
  • H H H表示输入的张量的行长, H ′ H' H′表示输出张量的行长
  • W W W表示输入的张量的列长, W ′ W' W′表示输出张量的列长

ps:这里的除法为向上取整

1.2 示例

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

2、有填充

2.1.1 公式2

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} H′W’​=S[0](H−K[0]+2∗Pad[0])​+1=S[1](W−K[1]+2∗Pad[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′表示输出张量的列长

ps:pytorch卷积操作中的默认填充方式为(上下、左右)对称0填充,且具体操作流程为先填充后卷积

2.1.2 示例

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

2.2.1 公式3

H ′ = ( H − K [ 0 ] + P a d [ 0 ] + P a d [ 1 ] ) S [ 0 ] + 1 W ’ = ( W − K [ 1 ] + P a d [ 2 ] + P a d [ 3 ] ) S [ 1 ] + 1 \begin{aligned}\\ H' &= \frac{(H-K[0] + Pad[0] + Pad[1])}{S[0]} + 1 \\ \\ W’ &=\frac{(W-K[1] + Pad[2] + Pad[3])}{S[1]} + 1 \end{aligned} H′W’​=S[0](H−K[0]+Pad[0]+Pad[1])​+1=S[1](W−K[1]+Pad[2]+Pad[3])​+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=(left, right, up, down))
  • H H H表示输入的张量的行长, H ′ H' H′表示输出张量的行长
  • W W W表示输入的张量的列长, W ′ W' W′表示输出张量的列长

2.2.2 示例

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

上一篇:python超赞插件you-get,执行一行命令即可下载、命令行下载工具推荐!


下一篇:FFMpeg无损合并视频的多种方法[转]