捷徑

HistogramObserver

class torch.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)[source][source]

此模組記錄張量值的運行直方圖以及最小值/最大值。calculate_qparams 將計算 scale 和 zero_point。

參數
  • bins (int) – 用於直方圖的 bin 數量

  • dtype (dtype) – 實作參考模型規範所需的 quantize 節點的 dtype 參數

  • qscheme – 要使用的量化方案

  • reduce_range – 將量化資料型別的範圍減少 1 位元

  • eps (Tensor) – float32 的 Epsilon 值,預設為 torch.finfo(torch.float32).eps

scale 和 zero point 的計算方式如下

  1. 建立傳入輸入的直方圖。

    直方圖是連續計算的,每個 bin 的範圍會隨著每個新的張量觀察而變化。

  2. 在直方圖中的分佈中搜尋最佳最小值/最大值。

    搜尋最小值/最大值可確保相對於浮點模型的量化誤差最小化。

  3. 以與

    MinMaxObserver 相同的方式計算 scale 和 zero point

文件

Access comprehensive developer documentation for PyTorch

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

Find development resources and get your questions answered

View Resources