FakeQuantize

torch.ao.quantization.fake_quantize.FakeQuantize(observer=<class 'torch.ao.quantization.observer.MovingAverageMinMaxObserver'>, quant_min=None, quant_max=None, is_dynamic=False, **observer_kwargs)[源代码]

在训练过程中模拟量化和反量化的操作。

该模块的输出如下:

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 (模块) – 用于观察输入张量的统计信息,并计算缩放因子和零点的模块。

  • observer_kwargs (可选) – 传递给观察器模块的参数

变量

activation_post_process (Module) — 用户提供的模块,用于收集输入张量的统计信息,并提供计算比例因子和零点的方法。

本页目录