【问题标题】:Using Transposed convolution for upsampling in PyTorch在 PyTorch 中使用转置卷积进行上采样
【发布时间】:2022-08-02 22:19:29
【问题描述】:

我有一个(2,1024,4,6) 的 4D 张量。我想使用转置卷积对这种张量的空间维度进行两倍上采样,并将通道数从 1024 减少到 512。我想要一个像 (2,512,8,12) 这样的 4D 张量。我怎样才能做到这一点?另外,转置卷积是减少通道数的好主意吗?例如,我使用了以下脚本,但它不起作用:

nn.ConvTranspose3d(in_channels=1024, out_channels=512, kernel_size=(1,2,2), stride=(1,3,2), padding=(0,1,1))

    标签: python pytorch


    【解决方案1】:

    看来您应该使用ConvTranspose2d 而不是ConvTranspose3d,因为您的输入张量是4D,形状为NCHW。 有不同的方法可以获得这些结果,但一种直接的方法是使用具有匹配步幅的2 内核大小:

    >>> conv = nn.ConvTranspose2d(1024, 512, kernel_size=2, stride=2)
    

    这是一个推理示例:

    >>> conv(torch.rand(2, 1024, 4, 6)).shape
    torch.Size([2, 512, 8, 12])
    

    【讨论】:

      猜你喜欢
      • 2018-06-27
      • 1970-01-01
      • 2017-12-02
      • 2020-07-27
      • 2018-09-23
      • 2020-01-23
      • 2020-06-04
      • 2013-06-08
      • 1970-01-01
      相关资源
      最近更新 更多