mindspore.mint.nn.functional.conv_transpose2d

查看源文件
mindspore.mint.nn.functional.conv_transpose2d(input, weight, bias=None, stride=1, padding=0, output_padding=0, groups=1, dilation=1)[源代码]

将2D转置卷积运算应用于由多个输入平面组成的输入图像,有时也称为反卷积(尽管它不是实际的反卷积)。

更多参考详见 mindspore.mint.nn.ConvTranspose2d

警告

  • 这是一个实验性API,后续可能修改或删除。

  • 在输入非连续场景下, output_padding 必须小于 stride

  • 在Atlas训练系列产品上,float32类型输入时,仅支持 groups 为1。

参数:
  • input (Tensor) - 输入Tensor,shape为 (minibatch,in_channels,iH,iW)(in_channels,iH,iW)

  • weight (Tensor) - 卷积核,shape为 (in_channels,out_channelsgroups,kH,kW)

  • bias (Tensor, 可选) - 偏置,shape为 (out_channels) 。默认值: None

  • stride (Union[int, tuple(int), list[int]], 可选) - 卷积的步长。可以为1个整数或1个元组 (sH,sW) 。默认值: 1

  • padding (Union[int, tuple(int), list[int]], 可选) - dilation(kernel_size1)padding 零填充将添加到输入中每个维度的两侧。可以为1个整数或1个元组 (padH,padW) 。默认值: 0

  • output_padding (Union[int, tuple(int), list[int]], 可选) - 在输出形状中每个维度的一侧增加额外的尺寸。可以为1个整数或1个元组 (out_padH,out_padW)output_padding 的值必须小于 stridedilation 。默认值: 0

  • groups (int, 可选) - 将输入分成 groups 组。in_channels 应能被 groups 整除。默认值: 1

  • dilation (Union[int, tuple(int), list[int]], 可选) - 内核元素之间的间距。可以为1个整数或1个元组 (dH,dW) 。默认值: 1

返回:

Tensor, shape为 (minibatch,out_channels,oH,oW)(out_channels,oH,oW) 。其中:

oH=(iH1)×sH2×padH+dH×(kH1)+out_padH+1
oW=(iW1)×sW2×padW+dW×(kW1)+out_padW+1
异常:
  • TypeError - stridepaddingoutput_paddingdilation 既不是int也不是tuple或list。

  • TypeError - groups 不是int。

  • ValueError - bias 的shape不是 (out_channels)

  • ValueError - stridedilation 小于1。

  • ValueError - paddingoutput_padding 小于0。

  • ValueError - stridepaddingoutput_paddingdilation 是tuple且其长度不等于2。

支持平台:

Ascend

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, mint
>>> x = Tensor(np.ones([1, 4, 5, 5]), mindspore.float32)
>>> weight = Tensor(np.ones([4, 8, 3, 3]), mindspore.float32)
>>> output = mint.nn.functional.conv_transpose2d(x, weight)
>>> print(output.shape)
(1, 8, 7, 7)