ConvTranspose3d

class ConvTranspose3d(in_channels, out_channels, kernel_size, stride=1, padding=0, output_padding=0, dilation=1, groups=1, bias=True)[源代码]

在一个input tensor上使用3D转置卷积。

只支持 groups = 1 且 conv_mode = “cross_correlation” 的情况.

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)