FakeQuantize¶
- 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
指示 fake quantie 是动态量化运算符(choose_qparams -> q -> dq)还是静态量化运算符(q -> dq)的占位符scale
定义用于量化的比例因子。zero_point
指定量化的值,浮点数中的 0 映射到该值fake_quant_enabled
控制张量上 fake quantization 的应用,请注意,统计信息仍然可以更新。observer_enabled
控制张量上的统计信息收集dtype
指定使用 fake-quantization 模拟的量化 dtype,允许的值为 torch.qint8 和 torch.quint8。
- 参数
observer (模块) – 用于观察输入张量上的统计信息并计算比例和零点的模块。
observer_kwargs (可选) – 观察者模块的参数
- 变量
activation_post_process (模块) – 用户提供的模块,用于收集输入张量的统计信息并提供计算比例和零点的方法。