01
量化基础
什么是模型量化、为什么需要量化、对称/非对称量化、精度与性能权衡
数学原理对称
02
量化类型
PTQ vs QAT · 动态/静态量化 · 权重量化与激活量化
PTQ静态
03
环境搭建
PyTorch · CUDA/cuDNN · torch.quantization · 代码仓库
配置CUDA
04
数据加载与预处理
ImageNet/CIFAR-10 · 数据增强 · 校准数据集构建
校准DataLoader
05
模型准备
ResNet-18/MobileNetV2 · 结构分析 · QuantStub/DeQuantStub
基准模型节点
06
FakeQuantize机制
工作原理 · 前向/反向传播 · scale/zero_point更新
伪量化STE
07
QAT训练流程
开启QAT模式 · qconfig · fuse_modules (BN+Conv)
融合配置
08
校准过程
迭代校准集 · 激活值分布 · min/max/移动平均 · 量化参数
校准Observer
09
反向传播与STE
直通估计器原理 · 解决量化不可导 · 自定义STE
STE梯度
10
量化配置详解
get_default_qconfig · Per-Tensor/Channel · 对称/非对称
qconfig粒度
11
训练超参数调整
学习率 · 权重衰减 · Batch Size · Epoch建议
调参LR
12
模型验证与评估
验证集精度 · FP32 vs INT8 · Top-1/Top-5
评估指标
13
精度调试
精度下降分析 · 激活截断/权重偏移 · 调整范围 · Observer
调试分布
14
Observer机制
MinMax · MovingAverageMinMax · Histogram · PerChannel
Observer统计
15
自定义Observer
继承基类 · 自定义统计 · 注册到量化配置
扩展灵活
16
逐层量化控制
不同层不同配置 · 敏感层分析 · disable_observer
精细跳过
17
模型导出
convert · 量化state_dict · TorchScript
INT8导出
18
ONNX导出
ONNX格式 · ONNX Runtime · 量化算子支持
ONNX跨平台
19
TensorRT部署
INT8校准 · 解析ONNX · 构建推理引擎
TensorRTNVIDIA
20
NCNN部署
NCNN框架 · PyTorch转NCNN · INT8推理
NCNN移动端
21
TFLite部署
TFLite量化转换 · INT8推理 · Android/iOS
TFLite移动
22
OpenVINO部署
INT8量化工具 · 模型优化 · Intel硬件加速
OpenVINOIntel
23
硬件适配
GPU/CPU/NPU/TPU · VNNI/DP4a指令集
硬件指令集
24
性能分析
推理速度 · 内存占用 · Throughput/Latency
基准吞吐
25
混合精度量化
FP16/FP32保护 · 敏感层策略 · 配置示例
混合保护
26
量化感知训练进阶
LSQ · PACT · QAT + Knowledge Distillation
LSQPACT
27
常见问题与解决方案
精度崩溃 · 不收敛 · 部署不一致 · 调试工具
排错日志
28
实战项目一:图像分类QAT
ResNet-50 on ImageNet · 完整代码 · 精度/速度对比
实战分类
29
实战项目二:目标检测QAT
YOLOv5/v8 · mAP对比 · TensorRT部署
YOLO检测
30
课程总结与展望
QAT趋势 · 自动化工具(NNCF/AIMET) · 软硬协同
总结未来