人工智能学习

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

本文主要是介绍卷积神经网络卷积后尺寸大小计算,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

  • 1、无填充
    • 1.1 公式1
    • 1.2 示例
  • 2、有填充
    • 2.1.1 公式2
    • 2.1.2 示例
    • 2.2.1 公式3
    • 2.2.2 示例

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 示例

在这里插入图片描述

这篇关于卷积神经网络卷积后尺寸大小计算的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!