Han*_*ns2 13 convolution conv-neural-network deconvolution pytorch
Conv2dTranspose 中 Output_padding 的作用是什么?请帮助我理解这一点?
Conv2dTranspose(1024, 512, kernel_size=3, stride=2, padding=1, output_padding=1)
Run Code Online (Sandbox Code Playgroud)
yut*_*bot 24
根据此处的文档: https: //pytorch.org/docs/stable/ generated/torch.nn.ConvTranspose2d.html 当应用Stride > 1 的 Conv2D 操作时,您可以使用不同的输入获得相同的输出尺寸。例如,7x7 和 8x8 输入都将返回 3x3 输出,且 Stride=2:
import torch
conv_inp1 = torch.rand(1,1,7,7)
conv_inp2 = torch.rand(1,1,8,8)
conv1 = torch.nn.Conv2d(1, 1, kernel_size = 3, stride = 2)
out1 = conv1(conv_inp1)
out2 = conv1(conv_inp2)
print(out1.shape) # torch.Size([1, 1, 3, 3])
print(out2.shape) # torch.Size([1, 1, 3, 3])
Run Code Online (Sandbox Code Playgroud)
当应用转置卷积时,返回哪个输出形状是不明确的,对于步长=2转置卷积,是7x7还是8x8。输出填充可帮助 pytorch 使用 output_padding 参数确定 7x7 或 8x8 输出。请注意,它不会填充零或任何要输出的内容,它只是确定输出形状并相应地应用转置卷积的一种方法。
conv_t1 = torch.nn.ConvTranspose2d(1, 1, kernel_size=3, stride=2)
conv_t2 = torch.nn.ConvTranspose2d(1, 1, kernel_size=3, stride=2, output_padding=1)
transposed1 = conv_t1(out1)
transposed2 = conv_t2(out2)
print(transposed1.shape) # torch.Size([1, 1, 7, 7])
print(transposed2.shape) # torch.Size([1, 1, 8, 8])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10594 次 |
最近记录: |