如何计算卷积层输出图像的大小&以及池化大小输出

如何计算卷积层输出图像的大小&以及池化大小输出

卷积

在卷积神经网络(CNN)中,计算卷积层输出图像的大小是一个常见的操作。以下是卷积计算的基本公式和步骤:

  1. 卷积层输出尺寸计算公式
    Output_size=⌊Input_size−Filter_size+2×PaddingStride⌋+1 \text{Output\_size} = \left\lfloor \frac{\text{Input\_size} - \text{Filter\_size} + 2 \times \text{Padding}}{\text{Stride}} \right\rfloor + 1 Output_size=StrideInput_sizeFilter_size+2×Padding+1

    其中:

    • Input_size\text{Input\_size}Input_size 是输入图像的尺寸(高度或宽度)。
    • Filter_size\text{Filter\_size}Filter_size 是卷积核的尺寸(通常是正方形,如 3×33 \times 33×3)。
    • Padding\text{Padding}Padding 是填充的像素数。
    • Stride\text{Stride}Stride 是卷积核移动的步长。
    • ⌊⋅⌋\left\lfloor \cdot \right\rfloor 表示向下取整。
  2. 实例
    假设输入图像尺寸为 32×3232 \times 3232×32,卷积核尺寸为 5×55 \times 55×5,填充为 000(即没有填充),步长为 111
    Output_size=⌊32−5+2×01⌋+1=⌊27⌋+1=28 \text{Output\_size} = \left\lfloor \frac{32 - 5 + 2 \times 0}{1} \right\rfloor + 1 = \left\lfloor 27 \right\rfloor + 1 = 28 Output_size=1325+2×0+1=27+1=28
    因此,输出图像的尺寸为 28×2828 \times 2828×28

  3. 带填充和步长的实例
    如果输入图像尺寸为 32×3232 \times 3232×32,卷积核尺寸为 3×33 \times 33×3,填充为 111(即每边填充一圈像素),步长为 222
    Output_size=⌊32−3+2×12⌋+1=⌊322⌋+1=16+1=17 \text{Output\_size} = \left\lfloor \frac{32 - 3 + 2 \times 1}{2} \right\rfloor + 1 = \left\lfloor \frac{32}{2} \right\rfloor + 1 = 16 + 1 = 17 Output_size=2323+2×1+1=232+1=16+1=17
    因此,输出图像的尺寸为 17×1717 \times 1717×17

  4. 卷积层的参数个数
    计算卷积层的参数个数的公式为:
    Params=(Filter_height×Filter_width×Input_channels+1)×Number_of_filters \text{Params} = (\text{Filter\_height} \times \text{Filter\_width} \times \text{Input\_channels} + 1) \times \text{Number\_of\_filters} Params=(Filter_height×Filter_width×Input_channels+1)×Number_of_filters

    例如,对于一个具有 3 个输入通道、32 个过滤器和 5×55 \times 55×5 卷积核的卷积层:
    Params=(5×5×3+1)×32=(75+1)×32=2432 \text{Params} = (5 \times 5 \times 3 + 1) \times 32 = (75 + 1) \times 32 = 2432 Params=(5×5×3+1)×32=(75+1)×32=2432

通过这些公式和实例,你可以计算任何卷积层的输出尺寸和参数个数。

池化

池化(Pooling)操作通常用于减小特征图的尺寸,同时保留重要的特征。计算池化层输出图像的大小的方法类似于卷积层,但公式略有不同。

池化层输出尺寸计算公式

Output_size=⌊Input_size−Pool_sizeStride⌋+1 \text{Output\_size} = \left\lfloor \frac{\text{Input\_size} - \text{Pool\_size}}{\text{Stride}} \right\rfloor + 1 Output_size=StrideInput_sizePool_size+1

其中:

  • Input_size\text{Input\_size}Input_size 是输入图像的尺寸(高度或宽度)。
  • Pool_size\text{Pool\_size}Pool_size 是池化窗口的尺寸(通常是正方形,如 2×22 \times 22×2)。
  • Stride\text{Stride}Stride 是池化窗口移动的步长。
  • ⌊⋅⌋\left\lfloor \cdot \right\rfloor 表示向下取整。

实例计算

假设我们有一个池化层,输入图像的尺寸为 54×54×9654 \times 54 \times 9654×54×96,池化窗口的尺寸为 2×22 \times 22×2,步长为 2(即常见的最大池化操作)。

  1. 计算高度和宽度
    Output_height=⌊54−22⌋+1=⌊26⌋+1=27 \text{Output\_height} = \left\lfloor \frac{54 - 2}{2} \right\rfloor + 1 = \left\lfloor 26 \right\rfloor + 1 = 27 Output_height=2542+1=26+1=27

    Output_width=⌊54−22⌋+1=⌊26⌋+1=27 \text{Output\_width} = \left\lfloor \frac{54 - 2}{2} \right\rfloor + 1 = \left\lfloor 26 \right\rfloor + 1 = 27 Output_width=2542+1=26+1=27

因此,输出图像的高度和宽度均为 27。

  1. 输出通道数
    池化操作不改变通道数。因此,输出图像的通道数仍然是 96。

最终输出尺寸

结合上面的计算,池化后的输出图像的尺寸为 27×27×9627 \times 27 \times 9627×27×96

解释

  • 输入图像尺寸54×54×9654 \times 54 \times 9654×54×96
  • 池化窗口尺寸2×22 \times 22×2
  • 步长: 2

池化操作通过应用 2×22 \times 22×2 的池化窗口,以步长 2 在 54×5454 \times 5454×54 的输入图像上滑动,从而得到一个高度和宽度均为 27,通道数为 96 的输出特征图。

总结

通过上述步骤,我们解释了如何计算池化层输出图像的尺寸。池化后的输出尺寸为 27×27×9627 \times 27 \times 9627×27×96

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xwhking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值