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