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**Since:** 32 333.2 34 35**Version:** 36 371.0 38 39**相关模块:** 40 41[NNRt](_n_n_rt.md) 42 43 44## 汇总 45 46 47### Public 属性 48 49 | 名称 | 描述 | 50| -------- | -------- | 51| [numBits](#numbits) | int<br/>量化的bit数 | 52| [zeroPoint](#zeropoint) | int<br/>零值 | 53| [scale](#scale) | double<br/>量化器的步长 | 54 55 56## 类成员变量说明 57 58 59### numBits 60 61 62``` 63int QuantParam::numBits 64``` 65 66**描述:** 67 68量化的bit数 69 70 71### scale 72 73 74``` 75double QuantParam::scale 76``` 77 78**描述:** 79 80量化器的步长 81 82 83### zeroPoint 84 85 86``` 87int QuantParam::zeroPoint 88``` 89 90**描述:** 91 92零值 93