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

Conv3DTransposeV2

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/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)、卷积核大小(kernel_size,kD,kH,kWkernel\_size,kD,kH,kW)、膨胀参数(dilationdilation)的关系是:

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

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

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

参数说明

参数名
输入/输出/属性
描述
数据类型
数据格式
input_size 输入
  • 1D张量,用于表示输入张量的形状。
INT32、INT64 -
x 输入
  • 特征图,相当于公式中的(N,Cin,Din,Hin,WinN,C_{in},D_{in},H_{in},W_{in})。
  • 一个张量,数据格式与'y'一致。
FLOAT16、FLOAT32、BFLOAT16、HIFLOAT8、FLOAT8_E4M3FN NDHWC、NCDHW
filter 输入
  • 一个5D张量,代表卷积核尺寸,相当于公式中的kernelSize[0]、kernelSize[1]、kernelSize[2]。
FLOAT16、BFLOAT16、FLOAT32、HIFLOAT8、FLOAT8_E4M3FN NCDHW、NDHWC、DHWCN
bias 可选属性
  • 一个1D张量,当前未启用。
FLOAT16、FLOAT32 -
offset_w 可选属性
  • 一个1D张量,用于量化反卷积,当前未启用。
INT8 -
strides 必填属性
  • 一个包含5个整数的元组或列表,用于指定滑动窗口在输入张量'x'每个维度上的步长。
  • 轴顺序与特征图格式一致。
- -
pads 必填属性
  • 一个包含6个整数的元组或列表,用于指定各方向的填充量,相当于公式中的padding[0]、padding[1]、padding[2]。
- -
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'整除。
  • 不同'groups'与dtype的组合支持见下方表格说明。
INT -
data_format 可选属性
  • 字符串,取值必须为["NDHWC","NCDHW"]之一,默认"NDHWC"。对应关系为:batch(N)、depth(D)、height(H)、width(W)、channels(C)。
  • 指定'x'与'y'的数据排布格式。
STRING -
output_padding 可选属性
  • 将在输出形状末尾额外增加的尺寸,默认值为[0,0,0,0,0]。
  • 相当于公式中的output_padding[0]、output_padding[1]、output_padding[2]。
- -
offset_x 可选属性
  • 默认值为0,保留字段。
INT -
y 输出
  • 相当于公式中的(N,Cout,Dout,Hout,WoutN,C_{out},D_{out},H_{out},W_{out})。
  • 数据格式与'x'一致。
FLOAT16、BFLOAT16、FLOAT32、HIFLOAT8、FLOAT8_E4M3FN NDHWC、NCDHW
  • Ascend 950PR/Ascend 950DT处理器:当'X'和'y'数据格式为NDHWC,dtype为非8bit时,暂不支持groups>1。

  • 不同groups取值与dtype的组合说明

    groups dtype x format filter format y format
    =1 HIFLOAT8/FLOAT8_E4M3FN NCDHW NCDHW NCDHW
    =1 HIFLOAT8/FLOAT8_E4M3FN NDHWC NCDHW NDHWC
    =1 FLOAT16/BFLOAT16/FLOAT32 NCDHW NCDHW NCDHW
    =1 FLOAT16/BFLOAT16/FLOAT32 NCDHW NDHWC NCDHW
    =1 FLOAT16/BFLOAT16/FLOAT32 NCDHW DHWCN NCDHW
    =1 FLOAT16/BFLOAT16/FLOAT32 NDHWC NDHWC NDHWC
    =1 FLOAT16/BFLOAT16/FLOAT32 NDHWC NCDHW NDHWC
    =1 FLOAT16/BFLOAT16/FLOAT32 NDHWC DHWCN NDHWC
    >1 HIFLOAT8/FLOAT8_E4M3FN NCDHW NCDHW NCDHW
    >1 FLOAT16/BFLOAT16/FLOAT32 NCDHW NCDHW NCDHW
    >1 FLOAT16/BFLOAT16/FLOAT32 NCDHW NDHWC NCDHW
    >1 FLOAT16/BFLOAT16/FLOAT32 NCDHW DHWCN NCDHW

约束说明

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

调用说明

调用方式 样例代码 说明
aclnn接口 test_aclnn_conv3d_transpose_v2 通过aclnnConvolution接口方式调用Conv3DTransposeV2算子