模型优化·剪枝·量化·TensorRT
🏫 风格
30章
1
课程导论:模型优化为什么重要?剪枝、量化、TensorRT三者的关系与适用场景。
理解优化动机,三剑客协同工作流
2
环境搭建:TensorFlow 2.x、TensorFlow Model Optimization Toolkit、TensorRT 8.x 安装与验证。
一键安装指南与版本校验
3
模型剪枝基础:什么是剪枝?结构化剪枝与非结构化剪枝的区别。
剪枝核心概念与分类
4
权重剪枝实战:使用 tfmot.sparsity.keras 对全连接网络进行权重剪枝。
动手实现权重稀疏化
5
剪枝调度策略:多项式衰减剪枝、常数剪枝、以及自定义调度策略。
灵活控制剪枝节奏
6
剪枝后微调:为什么剪枝后需要微调?微调策略与学习率设置。
恢复精度关键步骤
7
卷积网络剪枝:对 MobileNetV2 进行剪枝,观察精度与压缩率。
轻量模型剪枝实战
8
剪枝模型导出:将剪枝模型导出为 .h5 和 SavedModel 格式。
模型序列化与部署准备
9
量化基础:什么是量化?FP32、FP16、INT8 的区别与精度损失分析。
数值精度与性能权衡
10
训练后量化(PTQ):使用 TFLite 对模型进行训练后 INT8 量化。
快速无训练量化
11
量化感知训练(QAT):使用 tfmot.quantization.keras 进行 QAT 实战。
模拟量化效果更优
12
量化模型评估:对比 FP32、FP16、INT8 模型的精度与推理速度。
Benchmark 分析
13
混合精度训练:使用 tf.keras.mixed_precision 加速训练过程。
FP16/BF16 训练提速
14
TensorRT 入门:TensorRT 的核心概念:Engine、Builder、Network、Optimization Profile。
TensorRT 基础架构
15
ONNX 转换:将 Keras 模型转换为 ONNX 格式,为 TensorRT 做准备。
跨框架模型桥梁
16
TensorRT FP16 推理:使用 TensorRT 对 ONNX 模型进行 FP16 推理加速。
半精度推理实战
17
TensorRT INT8 量化:使用 TensorRT 的 INT8 校准器进行量化推理。
INT8 极致加速
18
动态形状支持:在 TensorRT 中处理可变输入尺寸(Dynamic Shapes)。
灵活输入适配
19
TensorRT Python API 实战:使用 Python 绑定构建和运行 TensorRT 引擎。
Python 快速部署
20
TensorRT C++ API 实战:使用 C++ API 部署 TensorRT 引擎(含 CMake 配置)。
生产级 C++ 部署
21
模型优化流水线:设计一个从 Keras -> 剪枝 -> 量化 -> TensorRT 的自动化流水线。
端到端优化管线
22
边缘设备部署:在 Jetson Nano 上部署 TensorRT 优化后的模型。
边缘端落地实践
23
模型优化工具对比:TFLite vs ONNX Runtime vs TensorRT 性能与生态对比。
选型参考指南
24
剪枝与量化联合优化:先剪枝后量化 vs 先量化后剪枝,哪种效果更好?
联合优化策略探究
25
模型优化中的精度调试:使用 TensorBoard 和量化误差分析工具定位精度损失。
诊断与修复精度
26
自定义量化方案:实现自定义量化器,支持非对称量化和每通道量化。
高级量化定制
27
模型优化最佳实践:总结剪枝率、量化位宽、TensorRT 配置的推荐参数。
经验参数速查
28
实战项目一:优化图像分类模型(ResNet50),在 CPU 和 GPU 上对比性能。
分类模型优化全流程
29
实战项目二:优化目标检测模型(YOLOv5s),在 Jetson 上实现实时推理。
检测模型落地实战
30
课程总结与展望:模型优化的未来趋势(稀疏计算、神经架构搜索、硬件协同设计)。
前沿趋势与职业路径