本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。