12.2深度学习_卷积层输出尺寸的计算公式

卷积层输出尺寸的计算公式

对于二维卷积层(nn.Conv2d),输出特征图的高度和宽度可以通过以下公式计算:

[
H_{\text{out}} = \left\lfloor \frac{H_{\text{in}} + 2 \times \text{padding} - \text{dilation} \times (\text{kernel_size} - 1) - 1}{\text{stride}} + 1 \right\rfloor
]

[
W_{\text{out}} = \left\lfloor \frac{W_{\text{in}} + 2 \times \text{padding} - \text{dilation} \times (\text{kernel_size} - 1) - 1}{\text{stride}} + 1 \right\rfloor
]

参数解释

在这里插入图片描述

示例计算

假设我们有一个输入张量 input,其尺寸为 (64, 1, 32, 32),并且我们使用了以下卷积层配置:

self.conv1 = nn.Conv2d(
    in_channels=1,
    out_channels=32,
    kernel_size=3,
    padding=0,
    stride=1,
)

我们可以根据上述公式计算 conv1 的输出尺寸:

  • 输入尺寸:( H_{\text{in}} = 32 ),( W_{\text{in}} = 32 )
  • 卷积核大小:( \text{kernel_size} = 3 )
  • 填充:( \text{padding} = 0 )
  • 步幅:( \text{stride} = 1 )
  • 膨胀系数:( \text{dilation} = 1 )(默认值)

代入公式:
在这里插入图片描述

因此,conv1 的输出尺寸为 (batch_size, 32, 30, 30)

池化层的输出尺寸

如果你在卷积层后添加了池化层(例如 nn.MaxPool2d),你可以使用类似的公式来计算池化后的输出尺寸。假设你使用了一个 kernel_size=2stride=2 的最大池化层:

self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2)

代入公式:

在这里插入图片描述

因此,pool1 的输出尺寸为 (batch_size, 32, 15, 15)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值