1. 2D 卷积
代码语言:javascript复制class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)
- 输入尺度:(N,C_{in},H_{in},W_{in})
- 输出尺度: (N,C_{out},H_{out},W_{out})
2. 2D 反卷积
代码语言:javascript复制class torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True)
- 输入尺度:(N,C_{in},H_{in},W_{in})
- 输出尺度: (N,C_{out},H_{out},W_{out})
【注】Conv2d 函数中的 stride 为卷积核的移动步长,padding 为输入张量的填充长度;而 ConvTranspose2d 函数中的 stride 为输入张量元素的间隔,padding 为输入张量的填充长度减小值。
在 ConvTranspose2d 中,stride 后的张量步长为:
此外,ConvTranspose2d 默认对输入张量做全填充,即 kernel_size / 2 函数中的 padding
则是用来指定填充步长的减小值,即最终填充步长为
而 output_padding 是在转置卷积后,给输出张量增加的 0 填充步长。