美文网首页
pytorch中ConvTranspose2d()

pytorch中ConvTranspose2d()

作者: 一技破万法 | 来源:发表于2020-08-26 17:29 被阅读0次

nn.ConvTranspose2d()

在由多个输入平面组成的输入图像上应用二维转置卷积运算符。
该模块可以看作是Conv2d相对于其输入的梯度。它也被称为分数步法卷积或反卷积(尽管它不是实际的反卷积运算)。

参数
  • in_channelsint)–输入图像中的通道数

  • out_channelsint)–卷积产生的通道数

  • kernel_sizeint元组)–卷积内核的大小

  • strideinttuple可选)–卷积的步幅。默认值:1

  • paddinginttuple可选)– 零填充将添加到输入中每个维度的两侧。默认值:0dilation * (kernel_size - 1) - padding

  • output_paddinginttuple可选)–在输出形状的每个尺寸的一侧添加的附加大小。默认值:0

  • groupsint可选)–从输入通道到输出通道的阻塞连接数。默认值:1

  • biasbool可选)–如果为True,则向输出添加可学习的偏见。默认:True

  • dilationinttuple可选)–内核元素之间的间距。默认值:1

维度
  • Input:(N,C_{in},H_{in},W_{in})
  • Output:(N,C_{out},H_{out},W_{out})
    H_{out}=(H_{in}−1)×stride[0]−2×padding[0]+dilation[0]×(kernel_size[0]−1)+output_padding[0]+1
    W_{out}=(W_{in}−1)×stride[1]−2×padding[1]+dilation[1]×(kernel_size[1]−1)+output_padding[1]+1
例子
>>> # With square kernels and equal stride
>>> m = nn.ConvTranspose2d(16, 33, 3, stride=2)
>>> # non-square kernels and unequal stride and with padding
>>> m = nn.ConvTranspose2d(16, 33, (3, 5), stride=(2, 1), padding=(4, 2))
>>> input = torch.randn(20, 16, 50, 100)
>>> output = m(input)
>>> # exact output size can be also specified as an argument
>>> input = torch.randn(1, 16, 12, 12)
>>> downsample = nn.Conv2d(16, 16, 3, stride=2, padding=1)
>>> upsample = nn.ConvTranspose2d(16, 16, 3, stride=2, padding=1)
>>> h = downsample(input)
>>> h.size()
torch.Size([1, 16, 6, 6])
>>> output = upsample(h, output_size=input.size())
>>> output.size()
torch.Size([1, 16, 12, 12])

相关文章

网友评论

      本文标题:pytorch中ConvTranspose2d()

      本文链接:https://www.haomeiwen.com/subject/zadfsktx.html