映射类型 ¶
- class torch.ao.quantization.observer.MappingType(value, names=<未提供>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source][source] ¶
如何将浮点数映射为整数
对称映射意味着浮点数范围对称映射到整数范围,比如说我们有一个浮点数范围(-3.5,10.2)和整数范围(-8,7)(int4),我们将使用(-10.2,10.2)作为浮点数的范围,并将其映射到(-8,7),例如,比例 = (10.2 - (-10.2)) / (7 - (-8))
SYMMETRIC_NO_CLIPPING_ERR 是对称映射的一种变体,其中比例是 smin 和 smax 的最大值,其中 smin = min_val_neg / quant_min,smax = max_val_pos / quant_max。通过单独计算 smin 和 smax,可以减少负值的舍入误差,并且所有浮点数都不会超出范围。
非对称映射意味着我们直接将浮点数范围映射到整数范围,对于上述示例,我们将(-3.5,10.2)映射到(-8,7),并基于此映射计算量化参数,例如,比例 = (10.2 - (-3.5)) / (7 - (-8))