mindspore.mint.nn.ConvTranspose2d ================================= .. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg :target: https://gitee.com/mindspore/mindspore/blob/master/docs/api/api_python/mint/mindspore.mint.nn.ConvTranspose2d.rst :alt: 查看源文件 .. py:class:: mindspore.mint.nn.ConvTranspose2d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, groups=1, bias=True, dilation=1, padding_mode="zeros", dtype=None) 将2D转置卷积运算应用于由多个输入平面组成的输入图像。 这个模块可以看作是Conv2d相对于其输入的梯度。它也被称为分数跨步卷积或反卷积(尽管它不是实际的反卷积操作,其不是计算卷积的真逆函数)。 所有参数中的 `kernel_size`, `stride`, `padding`, `output_padding` 可以为: - 单个整数 -- 在这种情况下,该值同时被用于H和W维度 - 一个由两个整数组成的tuple -- 在这种情况下,第一个整数用于H维度,第二个整数用于W维度。 .. warning:: - 这是一个实验性API,后续可能修改或删除。 - 在输入非连续场景下, `output_padding` 必须小于 `stride` 。 - 在Atlas训练系列产品上,float32类型输入时,仅支持 `groups` 为1。 参数: - **in_channels** (int) - 输入图像中的通道数。 - **out_channels** (int) - 卷积生成的通道数。 - **kernel_size** (Union[int, tuple(int)]) - 卷积核的大小。 - **stride** (Union[int, tuple(int)], 可选) - 卷积的步长。默认值: ``1`` 。 - **padding** (Union[int, tuple(int)], 可选) - :math:`dilation * (kernel\_size - 1) - padding` 零填充将添加到输入中每个维度的两侧。默认值: ``0`` 。 - **output_padding** (Union[int, tuple(int)], 可选) - 在输出形状中每个维度的一侧增加额外的尺寸。 `output_padding` 的值必须小于 `stride` 或 `dilation` 。默认值: ``0`` 。 - **groups** (int, 可选) - 从输入通道到输出通道的分块数。默认值: ``1`` 。 - **bias** (bool, 可选) - 如果值为 ``True`` , 则添加一个可学习的偏置至输出中。默认值: ``True`` 。 - **dilation** (Union[int, tuple(int)], 可选) - 内核元素之间的间距。默认值: ``1`` 。 - **padding_mode** (str, 可选) - 指定填充值的填充模式。目前仅支持 ``zeros``。默认值: ``zeros`` 。 - **dtype** (mindspore.dtype, 可选) - 模型参数的类型。默认值: ``None``,此时模型参数类型为 ``mstype.float32`` 。 可学习参数: - **weigh** (Parameter) - 模型的可学习权重,其shape为 :math:`(\text{in_channels}, \frac{\text{out_channels}}{\text{groups}}, \text{kernel_size[0]}, \text{kernel_size[1]})`。 其值从分布 :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})` 中采样得到,其中 :math:`k = \frac{groups}{C_\text{out} * \prod_{i=0}^{1}\text{kernel_size}[i]}` 。 - **bias** (Parameter) - 模型的可学习偏置,其shape为 :math:`(\text{out_channels},)` 。 如果 `bias` 为True,则其值从分布 :math:`\mathcal{U}(-\sqrt{k}, \sqrt{k})` 中采样得到,其中 :math:`k = \frac{groups}{C_\text{out} * \prod_{i=0}^{1}\text{kernel_size}[i]}` 输入: - **input** (Tensor) - Tensor,其shape为 :math:`(N, C_{in}, H_{in}, W_{in})` 或 :math:`(C_{in}, H_{in}, W_{in})` 。 输出: Tensor, shape为 :math:`(N, C_{out}, H_{out}, W_{out})` 或 :math:`(C_{out}, H_{out}, W_{out})` ,其中: .. math:: H_{out} = (H_{in} - 1) \times \text{stride}[0] - 2 \times \text{padding}[0] + \text{dilation}[0] \times (\text{kernel_size}[0] - 1) + \text{output_padding}[0] + 1 .. math:: W_{out} = (W_{in} - 1) \times \text{stride}[1] - 2 \times \text{padding}[1] + \text{dilation}[1] \times (\text{kernel_size}[1] - 1) + \text{output_padding}[1] + 1