mindspore/docs/api/api_python/mint/mindspore.mint.nn.ConvTrans...

51 lines
3.8 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

mindspore.mint.nn.ConvTranspose2d
=================================
.. 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)
将二维转置卷积运算应用于由多个输入平面组成的输入图像。
该模块执行的是二维转置卷积运算。在神经网络的误差反向传播中它恰好对应于计算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``
可学习参数:
- **weight** (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})`
输出:
- **output** (Tensor) - :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