tensor[32, 3, 128, 128]经过nn.Conv2d(3, 16, 3, 1)后,torch.size为[32, 16, 126, 126]的计算过程

经过 nn.Conv2d(3, 16, 3, 1) 后,张量的形状从 [32, 3, 128, 128] 变为 [32, 16, 126, 126]。这里详细解释这次卷积操作是如何导致张量形状变化的。

首先,这个卷积层的参数含义如下:

  • 输入通道数 (in_channels): 3(对应输入图像的 RGB 通道)。
  • 输出通道数 (out_channels): 16(卷积层的滤波器数量)。
  • 卷积核大小 (kernel_size): 3(3x3 卷积核)。
  • 步幅 (stride): 1(卷积核每次移动的像素数)。
  • 填充 (padding): 0(默认值,即不使用填充)。

这里一步步地计算卷积操作后的张量形状变化。

通道数变化

  • 输入通道数: 3
  • 输出通道数: 16

卷积操作通过 16 个不同的卷积核对输入图像进行操作,生成 16 个不同的特征图。因此,通道数从 3 变为 16。

空间维度变化 (高度和宽度)

计算输出特征图的高度和宽度可以使用以下公式: \text{Output Size} = \left( \frac{\text{Input Size} - \text{Kernel Size} + 2 \times \text{Padding}}{\text{Stride}} \right) + 1

  • 输入高度和宽度 (Input Size): 128
  • 卷积核大小 (Kernel Size): 3
  • 填充 (Padding): 0
  • 步幅 (Stride): 1

将这些值代入公式: \text{Output Height} = \left( \frac{128 - 3 + 2 \times 0}{1} \right) + 1 = 126

\text{Output Width} = \left( \frac{128 - 3 + 2 \times 0}{1} \right) + 1 = 126

所以,卷积操作后,特征图的高度和宽度都变为 126。

最终输出张量的形状

  • 批次大小 (Batch Size): 32(保持不变)
  • 输出通道数 (Output Channels): 16
  • 输出高度 (Output Height): 126
  • 输出宽度 (Output Width): 126

因此,经过 nn.Conv2d(3, 16, 3, 1) 后,张量的形状从 [32, 3, 128, 128] 变为 [32, 16, 126, 126]

最后

  • 输入的 32 张 RGB 图像,大小为 128x128 像素。
  • 经过 16 个 3x3 的卷积核,步幅为 1,没有填充。
  • 生成 16 个特征图,大小为 126x126 像素。
  • 最终输出形状为 [32, 16, 126, 126]
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值