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

aclnnFakeQuantPerChannelAffineCachemask

产品支持情况

[object Object]undefined

功能说明

  • 接口功能:对于输入数据self,使用scale和zero_point对输入self在指定轴axis上进行伪量化处理,并根据quant_min和quant_max对伪量化输出进行值域更新,最终返回结果out及对应位置掩码mask。

  • 计算公式:根据算子功能先计算临时变量qval,再计算得出out和mask。

    • zero_point的数据类型为int32
    qval=Round(std::nearby_int(self/scale)+zero_point)qval = Round(std::nearby\_int(self / scale) + zero\_point)
    • zero_point的数据类型为float16或float32
    qval=std::lrintf(self/scale+zero_point)qval = std::lrintf(self / scale + zero\_point) out=(Min(quant_max,Max(quant_min,qval))zero_point)scaleout = (Min(quant\_max, Max(quant\_min, qval)) - zero\_point) * scale mask=(qval>=quant_min)&(qval<=quant_max)mask = (qval >= quant\_min) \& (qval <= quant\_max)

函数原型

每个算子分为,必须先调用“aclnnFakeQuantPerChannelAffineCachemaskGetWorkspaceSize”接口获取入参并根据流程计算所需workspace大小,再调用“aclnnFakeQuantPerChannelAffineCachemask”接口执行计算。

[object Object]
[object Object]

aclnnFakeQuantPerChannelAffineCachemaskGetWorkspaceSize

  • 参数说明:

    [object Object]
  • 返回值:

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

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

    [object Object]

aclnnFakeQuantPerChannelAffineCachemask

  • 参数说明:

    [object Object]
  • 返回值:

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

约束说明

  • 确定性计算:

    • aclnnFakeQuantPerChannelAffineCachemask默认确定性实现。
  • 当前新算子FakeQuantPerChannelAffineCachemask不支持zero_point的float32和float16输入,故先在aclnn接口内部拦截,待算子支持后放开该限制。

调用示例

示例代码如下,仅供参考,具体编译和执行过程请参考

[object Object]