函数构造:

class ConvTranspose2d(_ConvTransposeMixin, _ConvNd):

    def __init__(self, in_channels, out_channels, kernel_size, stride=1,
                 padding=0, output_padding=0, groups=1, bias=True,
                 dilation=1, padding_mode='zeros'):
  • in_channels(int) – 输入信号的通道数
  • out_channels(int) – 卷积产生的通道数
  • kerner_size(int or tuple) - 卷积核的大小
  • stride(int or tuple,optional) - 卷积步长
  • padding(int or tupleoptional) - 输入的每一条边补充0的层数
  • output_padding(int or tupleoptional) - 输出的每一条边补充0的层数
  • dilation(int or tupleoptional) – 卷积核元素之间的间距
  • groups(intoptional) – 从输入通道到输出通道的阻塞连接数
  • bias(booloptional) - 如果bias=True,添加偏置

 

输入输出计算过程:

h_in = 128*128

h_out = 56*56

这里h_in指正向卷积输入

正向卷积:h_out = (h_in + 2*padding - kernl_size) / stride  +1

+1是因为除不尽向下取整

故转置卷积:h_in = (h_out - 1) * stride + kernl_size - 2*padding + output_padding

output_padding,是因为输出与期望输出有偏差,需在下边补0填充

相关文章:

  • 2021-07-29
  • 2022-12-23
  • 2022-12-23
  • 2021-06-30
  • 2021-11-01
  • 2021-07-20
  • 2022-12-23
  • 2021-08-29
猜你喜欢
  • 2021-12-19
  • 2021-09-29
  • 2022-12-23
  • 2022-12-23
  • 2021-07-13
  • 2021-04-29
相关资源
相似解决方案