
文章目录一、量化技术的三层架构二、第一层校准算法Calibration三、第二层量化策略Strategy常规量化混合量化四、第三层量化算子Quantization Scheme1. asymmetric_affine非对称仿射量化2. dynamic_fixed_point动态定点量化3. perchannel_symmetric_affine逐通道对称仿射量化五、三层关系总结六、完整数值示例FP32 → INT8示例设定各层选择Step 1校准normalStep 2计算 scale 和 zero_pointStep 3量化计算FP32 → INT8Step 4反量化INT8 → FP32七、总结本文系统梳理神经网络量化中的核心概念并通过一个完整的数值示例展示从 FP32 到 INT8 的完整转换过程。一、量化技术的三层架构神经网络量化是一个系统工程可以分为三个递进的层次校准算法怎么定范围 ↓ 量化策略怎么用 ↓ 量化算子怎么映射二、第一层校准算法Calibration校准算法解决的核心问题“如何确定最优的量化范围”算法核心思想适用场景normal直接使用 min/max 线性映射快速部署、数据分布均匀kl_divergence最小化 FP32 与 INT8 的 KL 散度高精度要求、TensorRTmoving_average训练中用滑动平均统计范围量化感知训练QAT三、第二层量化策略Strategy量化策略定义整个网络的量化方式常规量化全模型统一位宽如全 INT8优点实现简单、硬件友好缺点某些层精度损失较大混合量化不同层使用不同位宽或量化方式例如Conv 用 INT8Attention 用 FP16优点精度更高缺点实现复杂、调度开销大四、第三层量化算子Quantization Scheme量化算子是具体的数学映射方法1. asymmetric_affine非对称仿射量化q round(x / scale) zero_point✅ 支持非零 zero_point✅ 最适合激活值❌ 硬件实现稍复杂2. dynamic_fixed_point动态定点量化小数点位置动态调整适合 RNN/LSTM推理时可转为静态定点3. perchannel_symmetric_affine逐通道对称仿射量化每个通道独立 scale无 zero_point✅ 最适合权重量化✅ 硬件友好、精度高五、三层关系总结量化策略 ├── 常规量化 │ └── 校准算法normal / KL / moving_average │ └── 量化算子asymmetric_affine 等 └── 混合量化 ├── 权重perchannel_symmetric_affine ├── 激活asymmetric_affine └── RNNdynamic_fixed_point六、完整数值示例FP32 → INT8示例设定某层激活值x [-0.5, 0.2, 1.3, 2.0]各层选择层级选择校准算法normalmin/max量化策略常规量化量化算子asymmetric_affineStep 1校准normalx_min -0.5 x_max 2.0Step 2计算 scale 和 zero_pointINT8 范围[0, 255]scale (x_max - x_min) / (255 - 0) 2.5 / 255 ≈ 0.009804 zero_point round(-x_min / scale) round(0.5 / 0.009804) 51Step 3量化计算FP32 → INT8公式q clip(round(x / scale) zero_point, 0, 255)FP32计算过程INT8-0.5round(-0.5/0.009804) 5100.2round(0.2/0.009804) 51711.3round(1.3/0.009804) 511842.0round(2.0/0.009804) 51255Step 4反量化INT8 → FP32x̂ (q - zero_point) × scaleINT8反量化结果误差0-0.5000.000710.196-0.0041841.3040.0042552.0000.000✅最大误差 0.01七、总结校准算法决定量化范围量化策略决定网络级方案量化算子决定具体映射方式三者共同决定了量化模型的精度、速度和硬件兼容性。