from torch import nn
t = torch.ones((16, 64, 4, 4)) # test data
layer = nn.ConvTranspose2d(64, 64, kernel_size=(1, 3))
print(layer(t).shape) # torch.Size([16, 64, 4, 6])
from torch import nn
t = torch.ones((16, 64, 1, 1)) # test data
layer = nn.ConvTranspose2d(64, 64, kernel_size=(4, 4))
print(layer(t).shape) # torch.Size([16, 64, 4, 4])
1条答案
按热度按时间taor4pac1#
计算输出大小的公式在ConvTranspose2d的pytorch文档中。输入您的输入大小,设置您想要的输出大小,然后求解内核大小、步幅、填充等的公式。可能有多个有效的解决方案。
对于您的特定问题,可以使用以下方法:
为了证明可以有多个有效解,这里是用于将形状为
(16, 64, 1, 1)
的Tensor上采样为(16, 64, 4, 4)
的另一个解。