openharmony 鸿蒙 _quant_param_v20

2025-06-16 浏览 (1)

QuantParam

概述

量化参数结构体。

相关的公式如下,q为量化后的参数,r为真实参数, ( r_{max} )为待量化数据的最大值, ( r_{min} )待量化数据的最小值,round(x)为x四舍五入取整,clamp(x,min,max)为如下运算:

[ \text{clamp}(x,min,max) = \begin{cases} \text{max} & \text{ if } x > \text{ max } \ \text{min} & \text{ if } x < \text{ min } \ x & \text{ otherwise } \ \end{cases} ]

  • 浮点到定点的量化公式: $ \text{q}(x_i) = clamp(round(\frac{r}{scale}+zeroPoint), min , max) $

  • 定点到浮点的反量化公式: $ \text{r}= (q-zeroPoint)*scale $

  • 量化参数scale由如下公式计算: $ scale = \frac{r_{max}-r_{min}}{q_{max}-q_{min}} $

  • 量化参数zeroPoint由如下公式计算: $ zeroPoint = round(q_{min}-\frac{r_{min}}{scale}) $

  • 量化参数 ( q_{min},q_{max} ) 如下公式计算: $ q_{min} = -(1<<(numBits-1)) $

    $ q_{max} = (1<<(numBits-1))-1 $

特殊情况:当 ( r_{min} )和 ( r_{max} )同时为0时,scale 和 zeroPoint均为0。

起始版本: 3.2

相关模块:NNRt

汇总

Public 属性

名称描述
int numBits量化的bit数
int zeroPoint零值
double scale量化器的步长

类成员变量说明

numBits

int QuantParam::numBits

描述

量化的bit数

scale

double QuantParam::scale

描述

量化器的步长

zeroPoint

int QuantParam::zeroPoint

描述

零值

你可能感兴趣的鸿蒙文章

harmony 鸿蒙NNRt HDI 参考

harmony 鸿蒙Activation

harmony 鸿蒙Activation

harmony 鸿蒙AddFusion

harmony 鸿蒙AddFusion

harmony 鸿蒙ArgMaxFusion

harmony 鸿蒙ArgMaxFusion

harmony 鸿蒙AvgPoolFusion

harmony 鸿蒙AvgPoolFusion

harmony 鸿蒙BatchToSpaceND

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/JdxfCy