ONNX 模型量化压缩实战
🧩 30章完整目录
⚡ 从入门到部署
📐 友好色系
🎯 2025 · 蓝海资料
01
ONNX基础入门
ONNX是什么
为什么需要ONNX
ONNX生态概览
安装ONNX与ONNX Runtime
02
模型导出与转换
从PyTorch导出ONNX
从TensorFlow导出ONNX
从Keras导出ONNX
使用onnx-simplifier简化模型
03
ONNX模型结构解析
ONNX计算图
节点(Node)
张量(Tensor)
初始器(Initializer)
图(Graph)与元数据
04
ONNX算子详解
常见算子(Conv,Relu,Gemm等)
算子版本兼容性
自定义算子
05
ONNX模型调试与验证
使用Netron可视化模型
onnxruntime推理验证
onnx.checker检查合法性
06
ONNX模型优化基础
常量折叠
节点融合
冗余消除
拓扑排序优化
07
ONNX模型优化进阶
使用onnxoptimizer
onnxruntime GraphOptimizationLevel
手动优化策略
08
量化理论入门
什么是模型量化
量化原理(对称/非对称)
量化粒度(per-tensor/per-channel)
量化精度分析
09
ONNX动态量化实战
动态量化的原理
ONNX Runtime动态量化API
动态量化在CPU上的加速效果
10
ONNX静态量化实战(上)
静态量化流程
校准数据集准备
校准方法(MinMax, Entropy, Percentile)
11
ONNX静态量化实战(下)
使用onnxruntime.quantization静态量化
量化参数调整
精度评估
12
量化感知训练(QAT)基础
QAT原理
伪量化节点(FakeQuantize)
训练与微调策略
13
PyTorch QAT实战
torch.quantization模块
QAT配置
模型融合(fuse_modules)
导出量化ONNX模型
14
TensorFlow QAT实战
tensorflow_model_optimization库
QAT训练流程
导出量化模型
15
ONNX模型剪枝入门
剪枝原理
结构化剪枝与非结构化剪枝
剪枝对模型大小和速度的影响
16
ONNX模型剪枝实战
使用torch.nn.utils.prune剪枝
导出剪枝后的ONNX模型
剪枝后微调
17
ONNX模型蒸馏入门
知识蒸馏原理
教师-学生模型架构
蒸馏损失函数设计
18
ONNX模型蒸馏实战
使用PyTorch实现蒸馏训练
蒸馏后模型导出与量化
蒸馏+量化联合优化
19
综合案例:图像分类
ResNet50压缩流程(剪枝+量化+蒸馏)
精度与速度权衡
20
综合案例:目标检测
YOLOv5模型压缩
检测模型量化注意事项
mAP评估
21
综合案例:NLP
BERT模型压缩
动态量化在NLP任务中的应用
精度损失分析
22
ONNX Runtime部署优化
Session配置优化
执行提供者(EP)选择
内存优化
23
CPU部署优化
Intel OpenVINO集成
MKL-DNN加速
线程数调优
24
GPU部署优化
CUDA Execution Provider
TensorRT集成
FP16推理
25
移动端/边缘设备部署
ONNX Runtime Mobile
Android/iOS集成
模型大小优化
26
精度评估与调优
量化前后精度对比
逐层精度分析
混合精度量化策略
27
模型压缩工具链
NNCF(Intel)
TensorRT
OpenVINO
TFLite转换对比
28
模型压缩最佳实践
压缩流程总结
常见问题与解决方案
性能调优checklist
29
项目实战:完整流程
从原始模型到部署
项目代码结构
自动化压缩流水线
30
前沿与展望
INT4/INT8混合量化
稀疏化
自动化压缩(AutoML)
未来趋势