问题描述:
pytorch中的反置卷积
torch.nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, padding_mode='zeros')
对应mindspore是
mindspore.nn.Conv2dTranspose(in_channels, out_channels, kernel_size, stride=1, pad_mode="same", padding=0, dilation=1, group=1, has_bias=False, weight_init="normal", bias_init="zeros")
其中pytorch算子中有一个output_padding参数表示对输出的特征图的某一边进行padding,
然而mindspore算子中没有,那么如何实现对特征图的某一边进行padding呢,有替代的方案吗
解答
pytorch中的
nn.ConvTranspose2d(in_channels=num_inchannels[i],out_channels=num_inchannels[i],kernel_size=3, stride=2, padding=1,output_padding=1,bias=False)
可以用mindspore的以下方案实现:
nn.Conv2dTranspose(in_channels=num_inchannels[i], out_channels=num_inchannels[i], kernel_size=3, stride=2, padding=1, pad_mode="pad", has_bias=False), nn.Pad(paddings=((0,0),(0,0),(0,1),(0,1)), mode="CONSTANT")