| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 个月前 | ||
| 24 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 24 天前 |
Dequantize
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:对量化后的整数张量进行反量化,将其转换回浮点数。
-
计算公式:
支持三种反量化模式,由mode属性指定:
MIN_COMBINED模式:
y=(x+bias)×(max_range−min_range)2n−1+min_rangey = \frac{(x + bias) \times (max\_range - min\_range)}{2^n - 1} + min\_range
其中,nn为输入数据类型位数,bias=2n−1bias = 2^{n-1}(有符号类型)或00(无符号类型)。
MIN_FIRST模式:
对于INT8/UINT8:
offset=min_range+round(−min_range×(2n−1)/(max_range−min_range))×(max_range−min_range)2n−1offset = min\_range + \frac{round(-min\_range \times (2^n - 1) / (max\_range - min\_range)) \times (max\_range - min\_range)}{2^n - 1}
y=(x+bias)×(max_range−min_range)2n−1+min_range−offsety = \frac{(x + bias) \times (max\_range - min\_range)}{2^n - 1} + min\_range - offset
对于INT32:与MIN_COMBINED模式相同。
SCALED模式:
对于有符号类型(INT8、INT32):
y=x×max_range2n−1−1y = x \times \frac{max\_range}{2^{n-1} - 1}
对于无符号类型(UINT8):
y=x×max_range2n−1y = x \times \frac{max\_range}{2^{n} - 1}
其中nn为输入数据类型位数。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 量化后的输入张量 | INT8、UINT8、INT32 | ND |
| min_range | 输入 | 量化范围的最小值 | FLOAT | ND |
| max_range | 输入 | 量化范围的最大值 | FLOAT | ND |
| mode | 属性 | 反量化模式,可选值:MIN_COMBINED、MIN_FIRST、SCALED | String | - |
| y | 输出 | 反量化后的输出张量,shape与输入x一致 | FLOAT | ND |
约束说明
- min_range和max_range必须满足max_range > min_range。
- 在SCALED模式下,max_range必须大于0。
- min_range和max_range支持广播,其shape需要与输入x的shape兼容。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_dequantize.cpp | 通过算子IR构图方式调用Dequantize算子。 |