昇腾社区首页
中文
注册

ConvTranspose

功能

  • 转置卷积,使用一个输入张量和一个滤波器并计算输出。
  • 如果提供了pads参数,则通过以下公式计算输出的形状:

  • output_shape也可以明确指定,在这种情况下,使用以下公式自动生成pads:
    • 如果auto_pads == SAME_UPPER

    • 否则

输入

  • X:来自上一层的输入Tensor,对于二维卷积其shape为[N, C, H, W],其中N是批量大小,C是通道数,H和W是高度和宽度;对于超过2个维度其shape为[N, C, D, H, W],数据类型支持float16。
  • W:权重Tensor,对于二维卷积其shape为[C, M/group, kH, kW],其中C是通道数,kH和kW是内核的高度和宽度,M是特征图的数量。对于超过2个维度权重shape为[C, M/group, kD, kH kW)。输出中的通道数应等于 W.shape[1] * group(假设形状数组的索引从零开始),数据类型支持float16。
  • B(可选):输入一维Tensor,shape为[M],数据类型支持float16。

属性

  • auto_pad:数据类型为string,支持NOTSET、SAME_UPPER、SAME_LOWER或VALID,默认为NOTSET,显式使用padding的方式。SAME_UPPER或SAME_LOWER表示填充输入,输出y的shape有y_H = x_H * stride_H,y_W = x_W * stride_W;auto_pad设为VALID时不使用padding。
  • dilations:数据类型为ints,默认为全1序列,表示filter的每轴空洞值。
  • group:数据类型为int,默认为1,表示输入通道分组数。
  • kernel_shape:数据类型为ints,默认为输入filter的shape,表示卷积核大小。
  • output_padding:数据类型为ints,默认为全0数组,表示指定padding值。
  • output_shape:数据类型为ints,根据pad自动计算,表示输出shape。
  • pads:数据类型为ints,默认为全0矩阵,表示每根轴指定pad值。
  • strides:数据类型为ints,默认为全1矩阵,表示每根轴的stride值。

输出

y:卷积结果的输出数据张量,数据类型和输入一致。

约束

  • 输入通道[C]需要被group整除;bias的shape[M] 、filter的第1维维度[M/group]、输出y的第1维[M]需要满足约束。
  • 属性auto_pad在二维场景支持 "SAME_UPPER"、"SAME_LOWER"、"VALID",三维场景不支持。
  • 属性auto_pad在二维场景设置为 "SAME_UPPER"、"SAME_LOWER"、"VALID"时,属性pads若提供则会被修正。

支持的ONNX版本

Opset v8/v9/v10/v11/v12/v13/v14/v15/v16/v17/v18