pytorch中反卷积的函数为:
class torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0,
output_padding=0, groups=1, bias=True, dilation=1)
参数的含义如下:
- in_channels(int) – 输入信号的通道数
- out_channels(int) – 卷积产生的通道数
- kerner_size(int or tuple) -卷积核的大小
- stride(int or tuple,optional) - 卷积步长,即要将输入扩大的倍数。
- padding(int or tuple, optional) - 输入的每一条边补充0的层数,高宽都增加2*padding
- output_padding(int or tuple, optional) - 输出边补充0的层数,高宽都增加padding
- groups(int, optional) – 从输入通道到输出通道的阻塞连接数
- bias(bool, optional) - 如果bias=True,添加偏置
- dilation(int or tuple, optional) – 卷积核元素之间的间距
对于每一条边输入输出的尺寸的公式如下:
o u t p u t = ( i n p u t − 1 ) ∗ s t r i d e + o u t p u t p a d d i n g − 2 ∗ p a d d i n g + k e r n e l s i z e output = (input - 1)*stride+outputpadding - 2*padding+kernelsize output=(input−1)∗stride+outputpadding−2∗padding+kernelsize
以上公式参考自:pytorch中ConvTranspose2d的计算公式
我会抽空写一下公式是如何推导以及转置卷积的含义,