1# QuantParam 2 3 4## 概述 5 6量化参数结构体。 7 8相关的公式如下,q为量化后的参数,r为真实参数, \( r_{max} \)为待量化数据的最大值, \( r_{min} \)待量化数据的最小值,round(x)为x四舍五入取整,clamp(x,min,max)为如下运算: 9 10\[ \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} \] 11 12- 浮点到定点的量化公式: 13 $ \text{q}(x_i) = clamp(round(\frac{r}{scale}+zeroPoint), min , max) $ 14 15- 定点到浮点的反量化公式: 16 $ \text{r}= (q-zeroPoint)\*scale $ 17 18- 量化参数scale由如下公式计算: 19 $ scale = \frac{r_{max}-r_{min}}{q_{max}-q_{min}} $ 20 21- 量化参数zeroPoint由如下公式计算: 22 $ zeroPoint = round(q_{min}-\frac{r_{min}}{scale}) $ 23 24- 量化参数 \( q_{min},q_{max} \) 如下公式计算: 25 $ q_{min} = -(1<<(numBits-1)) $ 26 27 $ q_{max} = (1<<(numBits-1))-1 $ 28 29 特殊情况:当$ r_{min} $和$ r_{max} $同时为0时,scale 和 zeroPoint均为0。 30 31**起始版本:** 3.2 32 33**相关模块:**[NNRt](_n_n_rt_v10.md) 34 35 36## 汇总 37 38 39### Public 属性 40 41| 名称 | 描述 | 42| -------- | -------- | 43| int [numBits](#numbits) | 量化的bit数 | 44| int [zeroPoint](#zeropoint) | 零值 | 45| double [scale](#scale) | 量化器的步长 | 46 47 48## 类成员变量说明 49 50 51### numBits 52 53``` 54int QuantParam::numBits 55``` 56 57**描述** 58 59 60量化的bit数 61 62 63### scale 64 65``` 66double QuantParam::scale 67``` 68 69**描述** 70 71 72量化器的步长 73 74 75### zeroPoint 76 77``` 78int QuantParam::zeroPoint 79``` 80 81**描述** 82 83 84零值 85