假量化 ¶
- class torch.ao.quantization.fake_quantize.FakeQuantize(observer=<class 'torch.ao.quantization.observer.MovingAverageMinMaxObserver'>, quant_min=None, quant_max=None, is_dynamic=False, **observer_kwargs)[source][source]¶
模拟训练过程中的量化和反量化操作。
该模块的输出如下:
x_out = ( clamp(round(x/scale + zero_point), quant_min, quant_max) - zero_point ) * scale
is_dynamic
表示伪量化是动态量化算子(choose_qparams -> q -> dq)的占位符还是静态量化算子(q -> dq)的占位符scale
定义了用于量化的缩放因子zero_point
指定了浮点数中的 0 映射到的量化值fake_quant_enabled
控制对张量应用伪量化,注意统计信息仍然可以更新。observer_enabled
控制张量的统计信息收集-
dtype
指定通过伪量化模拟的量化数据类型,
允许的值是 torch.qint8 和 torch.quint8。
-
- 参数:
观察器(模块)- 用于观察输入张量的统计信息并计算尺度点和零点的模块。
observer_kwargs(可选)- 观察器模块的参数。
- 变量:
激活后处理(模块)- 用户提供的模块,用于收集输入张量的统计信息并提供计算尺度点和零点的方法。