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