5.2 KiB
5.2 KiB
模型优化 - 快速开始指南
当前状态: 跳过评估,直接开始模型优化
Baseline: Epoch 23 (NDS 0.6941, mAP 0.6446, mIoU 0.4130)
目标: 为Orin部署准备优化模型
⚡ 一键开始(5分钟)
立即运行模型分析
cd /workspace/bevfusion
# 一键启动分析
bash 开始模型分析.sh
这个脚本会:
- ✅ 分析模型参数量和大小
- ✅ 统计各模块参数分布
- ✅ 生成优化建议
- ✅ 创建详细分析报告
预计时间: 2-5分钟
GPU使用: 不需要(CPU分析)
不影响: Stage 1训练继续运行
📊 预期分析结果
基于BEVFusion架构,预期结果:
模型规模:
总参数量: ~110M
模型大小: ~441MB (FP32)
主要模块:
Camera Encoder: ~47M (43%) ← 最大模块,优先优化
LiDAR Encoder: ~19M (17%)
Detection Head: ~18M (16%)
Decoder: ~16M (14%)
Segmentation Head: ~8M (7%)
优化潜力:
剪枝40%: → 66M参数, 264MB
INT8量化: → 66MB模型
总压缩: 85% (441MB → 66MB)
🎯 三阶段优化路线
阶段1: 模型分析(今天,1小时)
任务:
✓ 运行复杂度分析
✓ 确定优化策略
✓ 准备剪枝工具
输出:
- model_complexity.txt
- optimization_recommendations.md
阶段2: 结构化剪枝(3-5天)
目标:
参数量: 110M → 60M (-45%)
模型大小: 441MB → 240MB
精度损失: <1.5%
步骤:
Day 1-2: 实施剪枝
Day 3-4: 微调3 epochs
Day 5: 评估效果
阶段3: INT8量化(4-6天)
目标:
模型大小: 240MB → 60MB (-75%)
推理加速: 2-3倍
累计精度损失: <3%
步骤:
Day 1: PTQ快速验证
Day 2-5: QAT训练5 epochs
Day 6: 最终评估
📋 分析后的下一步
查看分析结果
# 查看最新分析
ANALYSIS_DIR=$(ls -td analysis_results/analysis_* | head -1)
# 查看模型复杂度
cat $ANALYSIS_DIR/model_complexity.txt
# 查看优化建议
cat $ANALYSIS_DIR/optimization_recommendations.md
准备剪枝工具
# 安装torch-pruning(如果需要)
pip install torch-pruning
# 或使用PyTorch内置剪枝
# 已包含在环境中
创建剪枝配置
# configs/nuscenes/det/.../multitask_pruned.yaml
# 基于原始配置,修改:
pruning:
enabled: true
method: 'l1' # L1范数剪枝
target_params: 60000000 # 目标60M参数
# 各模块剪枝比例
ratios:
encoders.camera: 0.30 # 剪枝30%
decoder: 0.25
heads.object: 0.15
heads.map: 0.15
🚀 立即执行的命令
Step 1: 运行分析(现在)
cd /workspace/bevfusion
# 启动分析
bash 开始模型分析.sh
# 等待完成(2-5分钟)
Step 2: 查看结果
# 找到最新分析目录
ANALYSIS_DIR=$(ls -td analysis_results/analysis_* | head -1)
# 查看关键信息
echo "=== 总体统计 ==="
cat $ANALYSIS_DIR/model_complexity.txt | grep -A 6 "总体统计"
echo -e "\n=== 模块分布 ==="
cat $ANALYSIS_DIR/model_complexity.txt | grep -A 15 "各模块参数统计"
echo -e "\n=== 优化建议 ==="
cat $ANALYSIS_DIR/model_complexity.txt | grep -A 10 "优化建议"
Step 3: 准备剪枝(今天晚些时候)
# 安装剪枝库(如需要)
pip install torch-pruning
# 检查安装
python -c "import torch_pruning as tp; print(tp.__version__)"
📊 并行执行(不影响训练)
当前状态:
- ✅ Stage 1训练运行中(GPU 0-3)
- ✅ 模型分析可并行(CPU或GPU 4-7)
- ✅ 互不影响
资源使用:
GPU 0-3: Stage 1训练
GPU 4-7: 空闲(可选用于分析)
CPU: 模型分析(主要)
内存: ~2GB(分析需要)
磁盘: ~100MB(结果文件)
🎯 今天的目标
必须完成
- 运行模型分析
- 查看分析结果
- 理解优化策略
- 准备剪枝工具
可选完成
- 安装torch-pruning
- 创建剪枝配置模板
- 阅读剪枝文档
📚 相关文档
已创建文档
- 模型优化启动计划.md - 完整优化计划
- 模型优化_快速开始.md - 快速开始(本文档)
- EPOCH23_训练中的评估结果.md - Baseline数据
分析脚本
- 开始模型分析.sh - 一键启动脚本
- tools/analysis/model_complexity_simple.py - 复杂度分析
📞 常见问题
Q: 分析需要多久?
A: 2-5分钟。主要是加载模型和统计参数,不需要GPU。
Q: 会影响训练吗?
A: 不会。分析主要使用CPU,不占用训练GPU。
Q: 分析结果准确吗?
A: 参数统计是准确的。FLOPs和推理时间是估算值。
Q: 下一步做什么?
A: 查看分析结果,准备剪枝工具,明天开始剪枝实施。
🎉 总结
当前进度
- ✅ 跳过评估(已有baseline数据)
- ✅ 创建优化计划和工具
- ⏳ 准备运行模型分析
- ⏳ Stage 1训练继续进行
立即行动
# 一行命令启动
cd /workspace/bevfusion && bash 开始模型分析.sh
今天结束前
- 完成模型分析
- 理解优化策略
- 准备剪枝工具
- 明天开始剪枝实施
状态: 🚀 准备就绪
时间: 5分钟启动
影响: 零影响训练
下一步: 运行分析脚本