直方图观察器

classtorch.ao.quantization.observer.HistogramObserver(bins=2048, dtype=torch.quint8, qscheme=torch.per_tensor_affine, reduce_range=False, quant_min=None, quant_max=None, factory_kwargs=None, eps=1.1920928955078125e-07, is_dynamic=False, **kwargs)[源代码]

该模块记录了张量值的运行直方图,并计算最小值和最大值。函数calculate_qparams 用于计算比例因子和零点。

参数
  • bins (int) – 直方图中使用的区间数量

  • dtype (dtype) – 用于 量化 节点的 dtype 参数,以实现参考模型规范的要求

  • qscheme – 用于指定的量化方案

  • reduce_range - 将量化数据类型的范围减少一位

  • eps (Tensor) – 表示浮点数 的 epsilon 值,默认为 torch.finfo(torch.float32).eps

缩放比例和零点的计算方式如下:

  1. 创建传入输入的直方图。

    直方图会持续计算,并且每当观察到新的张量时,每个区间(bin)的范围都会发生变化。

  2. 在直方图中查找数据分布,以确定最佳的最小值和最大值。

    寻找最小和最大值可以确保量化误差相对于浮点模型达到最小。

  3. 按照之前的方式计算缩放比例和零点

    MinMaxObserver

本页目录