文件最后提交记录最后更新时间
8 个月前
3 个月前
25 天前
10 天前
27 天前
8 个月前
20 天前
README

ExtendConvTranspose

产品支持情况

产品 是否支持
Ascend 950PR&950DT系列产品 √
Atlas A3系列产品 ×
Atlas A2系列产品 ×
Atlas 200I/500 A2推理产品 ×
Atlas推理系列产品 ×
Atlas训练系列产品 ×

功能说明

  • 算子功能:计算三维转置卷积(反卷积),用于量化推理场景。

  • 计算公式:

    假定输入的shape为(N,Cin,Din,Hin,WinN,C_{in},D_{in},H_{in},W_{in})、输出的shape为(N,Cout,Dout,Hout,WoutN,C_{out},D_{out},H_{out},W_{out}),那么它们与卷积步长(stridestride)、填充(padspads)、卷积核大小(kernel_sizekernel\_size, kD, kH, kW)、膨胀参数(dilationdilation)的关系是:

    Dout=(Din−1)∗stride[0]−(pads[0]+pads[1])+dilation[0]∗(kernel_size[0]−1)+output_padding[0]+1 D_{out}=(D_{in} - 1) * stride[0] - (pads[0] + pads[1]) + dilation[0] * (kernel\_size[0] - 1) + output\_padding[0] + 1

    Hout=(Hin−1)∗stride[1]−(pads[2]+pads[3])+dilation[1]∗(kernel_size[1]−1)+output_padding[1]+1 H_{out}=(H_{in} - 1) * stride[1] - (pads[2] + pads[3]) + dilation[1] * (kernel\_size[1] - 1) + output\_padding[1] + 1

    Wout=(Win−1)∗stride[2]−(pads[4]+pads[5])+dilation[2]∗(kernel_size[2]−1)+output_padding[2]+1 W_{out}=(W_{in} - 1) * stride[2] - (pads[4] + pads[5]) + dilation[2] * (kernel\_size[2] - 1) + output\_padding[2] + 1

参数说明

参数名
输入/输出/属性
描述
数据类型
数据格式
input_size 输入
  • 1D张量,用于表示输入张量的形状,即卷积正向的输入(本算子输出'y')的形状。
INT32、INT64 -
x 输入
  • 特征图,相当于公式中的(N,Cin,Din,Hin,WinN,C_{in},D_{in},H_{in},W_{in})。
  • 一个张量,数据格式与'y'一致。
INT8 NCDHW
filter 输入
  • 一个5D张量,表示卷积核权重,形状为(CoutC_{out}, CinC_{in}/groups, kD, kH, kW),其中kD、kH、kW相当于公式中的kernelSize[0]、kernelSize[1]、kernelSize[2]。
INT8 NCDHW
bias 可选输入
  • 一个1D张量,卷积偏置张量,按out_channelsout\_channels顺序存储。
INT32 ND
scale 可选输入
  • 一个1D张量,与输出对应的通道维量化/反量化参数(channelwise)。
UINT64 ND
strides 必填属性
  • 一个包含5个整数的元组或列表,用于指定滑动窗口在输入张量'x'每个维度上的步长。
  • 轴顺序与特征图格式一致。
- -
pads 必填属性
  • 一个包含6个整数的元组或列表,用于指定各方向的填充量,相当于公式中的pads[0]~pads[5]。
- -
dilations 可选属性
  • 一个包含5个整数的元组或列表,表示输入各维度的膨胀(空洞)因子,相当于公式中的dilation[0]、dilation[1]、dilation[2]。
  • 默认值为[1,1,1,1,1]。
  • 轴顺序与特征图格式一致。
- -
groups 可选属性
  • 整数,范围为[1,65535],默认1。
  • 表示从cinc_{in}到coutc_{out}的分组连接数。
  • cinc_{in}与coutc_{out}必须能被'groups'整除。
INT -
data_format 可选属性
  • 字符串,当前仅支持取值"NCDHW"。对应关系为:batch(N)、channels(C)、depth(D)、height(H)、width(W)。
  • 指定'x'与'y'的数据排布格式。
STRING -
output_padding 可选属性
  • 将在输出形状末尾额外增加的尺寸,默认值为[0,0,0,0,0]。
  • 相当于公式中的output_padding[0]、output_padding[1]、output_padding[2]。
- -
offset_x 可选属性
  • 默认值为0,保留字段。
INT -
fusion_mode 可选属性
  • 整数,取值为0或1,默认0。表示输出是否开启ReLU:0表示不开启,1表示开启。
INT -
y_quant_mode 可选属性
  • 默认值为0,保留字段。
INT -
y 输出
  • 相当于公式中的(N,Cout,Dout,Hout,WoutN,C_{out},D_{out},H_{out},W_{out})。
  • 数据格式与'x'一致。
FLOAT16、INT8 NCDHW

约束说明

  • input_size
    • 可输入的轴序列如下:
      • [batch, in_channels, in_depth, in_height, in_width]
  • x
    • N、C、D、H和W维度的取值范围必须在 [1,2147483647] 之间。
  • filter
    • N(out_channels)、C(in_channels/groups)和D维度的取值范围必须在 [1,2147483647] 之间。
    • kernel_height(H)与kernel_width(W)维长度须在 [1,511] 范围内。
  • strides
    • N和C的维度必须为1。
    • D、H、W维度取值范围必须在 [1,2147483647] 之间。
  • pads
    • 填充顺序为:[front, back, top, bottom, left, right]。
    • D、H和W维度的取值范围必须在 [0,2147483647] 之间。
  • dilations
    • N与C的维度必须为1。
    • D、H和W维度的取值范围必须在 [1,2147483647] 之间。
  • output_padding
    • N和C维度必须为0,仅允许在深度、高度、宽度方向上添加。
    • D、H和W维度的取值范围必须在 [0,2147483647] 之间。
  • 由于硬件资源限制,算子在部分参数取值组合场景下会执行失败,请根据日志信息提示分析并排查问题。若无法解决,请单击 Link获取技术支持。

调用说明

该算子无对应的aclnn接口,仅在图模式调用Conv2DTranspose算子且输入类型为INT8时,会转为ExtendConvTranspose进行量化相关实现。