量化(Quantization)¶
量化配置¶
一个配置类指明如何对 |
可用预设配置如下:
min_max_fakequant_qconfig
使用
MinMaxObserver
和FakeQuantize
预设。ema_fakequant_qconfig
sync_ema_fakequant_qconfig
ema_lowbit_fakequant_qconfig
使用
ExponentialMovingAverageObserver
和FakeQuantize
且数值类型为qint4
的预设。calibration_qconfig
对激活值使用
HistogramObserver
进行后量化(无FakeQuantize
)的预设。tqt_qconfig
使用
TQT
进行假量化的预设。passive_qconfig
使用
PassiveObserver
和FakeQuantize
的预设。easyquant_qconfig
用于 easyquant 算法的 QConfig,等价于
passive_qconfig
.
观察¶
所有 Observer 的基类 |
|
一个通过记录输入 Tensor 的滑动最小值、最大值来计算 scale 的 Observer。 |
|
一个分布式版本的 |
|
一个支持动量更新最小、最大值的 |
|
一个分布式版本的 |
|
一个使用滑动直方图统计算法更新最小、最大值的 |
|
一个支持直接设置 |
假量化¶
可根据observer的scale和zero_point参数来进行量化(Quantization)和反量化(Dequantization)的模块。 |
|
TQT: https://arxiv.org/abs/1903.08066 Trained Quantization Thresholds for Accurate and Efficient Fixed-Point Inference of Deep Neural Networks |
量化操作¶
使用 |
|
应用 |
|
使用 |
|
使用 |
|
使用 |
|
使用 |
|
使用 |
|
根据 |