本文简要介绍python语言中 torch.nn.ConvTranspose2d
的用法。
用法:
class torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros', device=None, dtype=None)
在由多个输入平面组成的输入图像上应用 2D 转置卷积算子。
这个模块可以看作是 Conv2d 相对于其输入的梯度。它也称为fractionally-strided 卷积或反卷积(尽管它不是实际的反卷积操作,因为它不计算真正的卷积逆)。有关详细信息,请参阅可视化 这里 和 Deconvolutional Networks 论文。
该模块支持 TensorFloat32。
stride
控制互相关的步幅。padding
控制dilation * (kernel_size - 1) - padding
点数两侧的隐式零填充量。有关详细信息,请参阅下面的注释。output_padding
控制添加到输出形状一侧的附加大小。有关详细信息,请参阅下面的注释。dilation
控制内核点之间的间距;也称为 à trous 算法。很难说明,但链接这里 很好地可视化了dilation
的作用。groups
控制输入和输出之间的连接。in_channels
和out_channels
都必须能被groups
整除。例如,在 groups=1 时,所有输入都卷积到所有输出。
在 groups=2 时,该操作等效于并排有两个卷积层,每个卷积层看到一半的输入通道并产生一半的输出通道,并且随后将两者连接起来。
在 groups=
in_channels
,每个输入通道都与自己的一组过滤器(大小为 )进行卷积。
参数
kernel_size
、stride
、padding
、output_padding
可以是:单个
int
- 在这种情况下,高度和宽度尺寸使用相同的值两个整数的
tuple
- 在这种情况下,第一个int
用于高度维度,第二个int
用于宽度维度
注意
padding
参数有效地将dilation * (kernel_size - 1) - padding
零填充量添加到输入的两种大小。这样设置是为了当使用相同参数初始化Conv2d
和ConvTranspose2d
时,它们的输入和输出形状彼此相反。但是,当stride > 1
时,Conv2d
将多个输入形状映射到同一输出形状。output_padding
的提供是为了通过有效增加一侧的计算输出形状来解决这种歧义。请注意,output_padding
仅用于查找输出形状,但实际上并不向输出添加零填充。注意
在某些情况下,当在 CUDA 设备上给定张量并使用 CuDNN 时,此运算符可能会选择非确定性算法来提高性能。如果这是不可取的,您可以尝试通过设置
torch.backends.cudnn.deterministic = True
来使操作具有确定性(可能以性能为代价)。有关详细信息,请参阅重现性。- 形状:
输入:
输出:
例子:
>>> # 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])
参数:
变量:
相关用法
- Python PyTorch ConvTranspose3d用法及代码示例
- Python PyTorch Conv1d用法及代码示例
- Python PyTorch Conv2d用法及代码示例
- Python PyTorch Conv3d用法及代码示例
- Python PyTorch ContinuousBernoulli用法及代码示例
- Python PyTorch ConstantPad2d用法及代码示例
- Python PyTorch Concater用法及代码示例
- Python PyTorch ConstantLR用法及代码示例
- Python PyTorch ConstantPad1d用法及代码示例
- Python PyTorch ConstraintRegistry.register用法及代码示例
- Python PyTorch ConstantPad3d用法及代码示例
- Python PyTorch Collator用法及代码示例
- Python PyTorch CosineAnnealingWarmRestarts.step用法及代码示例
- Python PyTorch CocoCaptions用法及代码示例
- Python PyTorch ComplexNorm用法及代码示例
- Python PyTorch Compose用法及代码示例
- Python PyTorch CosineSimilarity用法及代码示例
- Python PyTorch CSVParser用法及代码示例
- Python PyTorch CrossEntropyLoss用法及代码示例
- Python PyTorch ChannelShuffle用法及代码示例
- Python PyTorch CSVDictParser用法及代码示例
- Python PyTorch Cityscapes用法及代码示例
- Python PyTorch ChainedScheduler用法及代码示例
- Python PyTorch Cauchy用法及代码示例
- Python PyTorch CriteoIterDataPipe用法及代码示例
注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.nn.ConvTranspose2d。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。