昇腾社区首页
中文
注册
开发者
下载

aclnnQuantConvolution

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:完成 per-channel 量化的 2D、3D 卷积计算,其中卷积计算过程与 aclnnConvolution 接口一致。

  • 计算公式: 我们假定输入(input)的 shape 是 (N,Cin,D,H,W)(N, C_{\text{in}}, D, H, W),weight 的 shape 是 (Cout,Cin,Kd,Kh,Kw)(C_{\text{out}}, C_{\text{in}}, K_d, K_h, K_w),scale 的 shape 是 (Cout)(C_{\text{out}}),bias 的 shape 是 CoutC_{\text{out}},输出(output)的 shape 是 (N,Cout,Dout,Hout,Wout)(N, C_{\text{out}}, D_{\text{out}}, H_{\text{out}}, W_{\text{out}}),其中 NN 表示批次大小(batch size),CC 是通道数,DDHHWW 分别是样本的深度、高度和宽度,KdK_dKhK_hKwK_w 分别是卷积核的深度、高度和宽度,那输出将被表示为:

    output(Ni,Coutj,Dout,Hout,Wout)=[k=0Cin1weight(Coutj,k)input(Ni,k)]×scale(Coutj)+bias(Coutj)\text{output}(N_i, C_{\text{out}_j}, D_{\text{out}}, H_{\text{out}}, W_{\text{out}}) = \left[\sum_{k = 0}^{C_{\text{in}} - 1} \text{weight}(C_{\text{out}_j}, k) \star \text{input}(N_i, k)\right] \times \text{scale}(C_{\text{out}_j}) + \text{bias}(C_{\text{out}_j})

    其中,\star 表示卷积计算,根据卷积输入的维度,卷积的类型(空洞卷积、分组卷积)而定。NN 代表批次大小(batch size),CC 代表通道数,DDHHWW 分别代表深度、高度和宽度,相应输出维度的计算公式如下:

    Dout=[(D+2×padding[0]dilation[0]×(Kd1)1)/stride[0]]+1Hout=[(H+2×padding[1]dilation[1]×(Kh1)1)/stride[1]]+1Wout=[(W+2×padding[2]dilation[2]×(Kw1)1)/stride[2]]+1D_{\text{out}}=[(D + 2 \times padding[0] - dilation[0] \times (K_d - 1) - 1 ) / stride[0]] + 1 \\ H_{\text{out}}=[(H + 2 \times padding[1] - dilation[1] \times (K_h - 1) - 1 ) / stride[1]] + 1 \\ W_{\text{out}}=[(W + 2 \times padding[2] - dilation[2] \times (K_w - 1) - 1 ) / stride[2]] + 1

函数原型

每个算子分为,必须先调用 aclnnQuantConvolutionGetWorkspaceSize 接口获取计算所需 workspace 大小以及包含了算子计算流程的执行器,再调用 aclnnQuantConvolution 接口执行计算。

[object Object]
[object Object]

aclnnQuantConvolutionGetWorkspaceSize

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

    一段接口完成入参校验,出现以下场景时报错:

    [object Object]

aclnnQuantConvolution

  • 参数说明:

    [object Object]
  • 返回值:

    aclnnStatus:返回状态码,具体参见

约束说明

  • 确定性计算

    • aclnnQuantConvolution默认确定性实现。
    [object Object]

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考。 不同产品型号请参考使用不同的 main 函数。

[object Object]
  • [object Object]Atlas A2 训练系列产品/Atlas A2 推理系列产品[object Object]、[object Object]Atlas A3 训练系列产品/Atlas A3 推理系列产品[object Object]:
[object Object]