# ConvTranspose3d¶

ConvTranspose3d 可以被视为 Conv3d operation 相对于input的梯度。

Convolution3D 通常会减小输入的大小，而transposed convolution3d 的工作方式相反，将较小的输入转换为较大的输出，同时保留连接模式。

• in_channels (int) – 输入数据中的通道数。

• out_channels (int) – 输出数据中的通道数。

• kernel_size (Union[int, Tuple[int, int, int]]) – 空间维度上的权重大小。如果kernel_size 是一个 int, 实际的kernel大小为 (kernel_size, kernel_size, kernel_size)

• stride (Union[int, Tuple[int, int, int]]) – stride of the 3D convolution operation. Default: 1.

• padding (union[int, Tuple[int, int, int]]) – size of the paddings added to the input on all sides of its spatial dimensions. Only zero-padding is supported. Default: 0.

• output_padding (Union[int, Tuple[int, int, int]]) – size of paddings appended to output. Default: 0.

• dilation (Union[int, tuple[int, int, int]]) – dilation of the 3D convolution operation. Default: 1.

• groups (int) – number of groups into which the input and output channels are divided, so as to perform a grouped convolution. When groups is not 1, in_channels and out_channels must be divisible by groups, and the shape of weight should be (groups, in_channels // groups, out_channels // groups, depth, height, width). Default: 1.

• bias (bool) – wether to add a bias onto the result of convolution. Default: True.

Shape:
• Input: $$(N, C_{in}, D_{in}, H_{in}, W_{in})$$ or $$(C_{in}, D_{in}, H_{in}, W_{in})$$

• Output: $$(N, C_{out}, D_{out}, H_{out}, W_{out})$$ or $$(C_{out}, D_{out}, H_{out}, W_{out})$$, where

$D_{out} = (D_{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$
$H_{out} = (H_{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$
$W_{out} = (W_{in} - 1) \times \text{stride}[2] - 2 \times \text{padding}[2] + \text{dilation}[2] \times (\text{kernel\_size}[2] - 1) + \text{output\_padding}[2] + 1$

module. The instance of the ConvTranspose3d module.

Return type

>>> import torch
>>> import megengine
>>> conv_transpose = megengine.module.conv.ConvTranspose3d(3, 64, 3, stride=2, padding=1)
>>> input = megengine.tensor(torch.randn(16, 3, 32, 32, 32))
>>> output = conv_transpose.forward(input)
>>> print(output.numpy().shape)
(16, 64, 63, 63, 63)


• weight 的shape通常是 (in_channels, out_channels, depth, height, width) .

• bias 的shape通常是 (1, out_channels, *1)