9.7 KiB
9.7 KiB
Phase 4A: BEV 2x分辨率提升 - 状态与环境配置
更新时间: 2025年10月30日
状态: 配置完成,待环境问题解决后启动训练
📊 项目状态总览
已完成工作
✅ 1. Phase 3训练完成 (2025-10-29)
- Epoch: 23 epochs (超出原计划20 epochs)
- 最终性能:
- NDS: 0.6941 (69.41%)
- mAP: 0.6446 (64.46%)
- mIoU: 0.4130 (41.30%)
- Checkpoint:
runs/enhanced_from_epoch19/epoch_23.pth(516MB) - 训练日志:
enhanced_training_6gpus.log
✅ 2. Phase 4A配置文件创建 (2025-10-30)
- 配置文件:
configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/multitask_BEV2X_phase4a.yaml - 启动脚本:
start_phase4a_bev2x_fixed.sh - 监控脚本:
monitor_phase4a.sh
当前状态
⏸️ Phase 4A训练准备就绪,等待环境问题解决
🎯 Phase 4A 配置详情
BEV分辨率提升配置
| 参数 | Phase 3 (当前) | Phase 4A (目标) | 提升 |
|---|---|---|---|
| BEV分辨率 | 0.3m/grid | 0.15m/grid | 2倍 ⭐ |
| BEV Grid大小 | 360×360 | 720×720 | 4倍 |
| 输出分辨率 | 200×200 @ 0.5m | 400×400 @ 0.25m | 2倍 |
| GT标签分辨率 | 400×400 @ 0.25m | 800×800 @ 0.125m | 2倍 |
Decoder升级
| 参数 | Phase 3 | Phase 4A | 变化 |
|---|---|---|---|
| decoder_channels | [256, 128] | [256, 256, 128, 128] | 2层→4层 ⭐ |
| deep_supervision | false | true | 启用 ⭐ |
| use_dice_loss | false | true | 启用 ⭐ |
| dice_weight | - | 0.5 | 新增 |
训练参数
max_epochs: 20 # 从epoch_23继续训练20轮
optimizer:
type: AdamW
lr: 2.0e-5 # 降低学习率(从5e-5)
data:
samples_per_gpu: 1 # BEV 2x显存需求增加
workers_per_gpu: 0 # 避免数据加载问题
GPU: 6张 Tesla V100S 32GB
预计训练时间: 12.5天
预期性能提升
检测性能:
NDS: 0.6941 → 0.710 (+2.3%)
mAP: 0.6446 → 0.670 (+3.9%)
分割性能 (核心提升):
整体mIoU: 0.4130 → 0.540 (+30.7%) 🎉
各类别IoU:
Drivable Area: 0.7063 → 0.795 (+12.6%)
Ped Crossing: 0.3931 → 0.465 (+18.3%)
Walkway: 0.5278 → 0.600 (+13.6%)
Stop Line: 0.2657 → 0.445 (+67.3%) 🚀 关键提升
Carpark Area: 0.3948 → 0.470 (+19.0%)
Divider: 0.1903 → 0.365 (+92.1%) 🚀 翻倍
⚙️ 环境配置记录
成功的训练环境 (Phase 3)
训练时间: 2025-10-21 ~ 2025-10-29 (8天)
启动方式:
# 成功的启动脚本格式
export PATH=/opt/conda/bin:$PATH
/opt/conda/bin/torchpack dist-run -np 6 /opt/conda/bin/python tools/train.py \
configs/.../multitask_enhanced_phase1_HIGHRES.yaml \
--model.encoders.camera.backbone.init_cfg.checkpoint pretrained/swint-nuimages-pretrained.pth \
--load_from runs/enhanced_from_epoch19/epoch_19.pth \
--data.samples_per_gpu 2 \
--data.workers_per_gpu 0 \
2>&1 | tee training.log
关键环境变量:
PATH=/opt/conda/bin:$PATH
# 不需要设置LD_LIBRARY_PATH
Python环境:
Python: 3.8
PyTorch: 1.10.1
CUDA: 11.3
mmcv: 1.4.0
mmdet: 2.24.0
mmdet3d: 1.0.0rc2
torchpack: 已安装
GPU配置:
6张 Tesla V100S-PCIE-32GB
显存占用: ~19GB/GPU @ batch_size=2
利用率: 97-100%
当前环境问题 (Phase 4A启动失败)
错误信息:
ImportError: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
可能原因:
- 库路径未正确设置
- Docker环境可能需要重启
- Conda环境可能需要重新激活
- 系统库依赖问题
尝试过的解决方案:
# 尝试1: 设置LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/conda/lib:/opt/conda/lib/python3.8/site-packages/torch/lib:$LD_LIBRARY_PATH
# 结果: 失败
# 尝试2: 使用完整路径
/opt/conda/bin/torchpack dist-run -np 6 /opt/conda/bin/python tools/train.py
# 结果: 失败
# 尝试3: 使用torch.distributed.launch
python -m torch.distributed.launch --nproc_per_node=6
# 结果: 失败
📝 后续启动步骤
方案A: 使用成功的环境设置 (推荐)
步骤1: 检查环境
cd /workspace/bevfusion
# 检查Python和torchpack
which python
which torchpack
# 检查CUDA
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
# 检查mmcv
python -c "import mmcv; print(mmcv.__version__)"
步骤2: 如果环境正常,直接启动
bash start_phase4a_bev2x_fixed.sh
步骤3: 监控训练
# 实时查看日志
tail -f phase4a_bev2x_*.log | grep -E "Epoch|loss:"
# 查看GPU
watch -n 60 nvidia-smi
# 运行监控脚本
bash monitor_phase4a.sh
方案B: 重启Docker环境 (如需要)
步骤1: 重启Docker
# 退出当前容器
exit
# 重新进入容器
docker exec -it [容器名] /bin/bash
cd /workspace/bevfusion
步骤2: 重新设置环境
export PATH=/opt/conda/bin:$PATH
cd /workspace/bevfusion
步骤3: 启动训练
bash start_phase4a_bev2x_fixed.sh
方案C: 环境诊断脚本
创建诊断脚本检查环境:
cat > check_env.sh << 'EOF'
#!/bin/bash
echo "=== 环境诊断 ==="
echo "Python: $(which python)"
echo "Python版本: $(python --version)"
echo "PyTorch版本: $(python -c 'import torch; print(torch.__version__)')"
echo "CUDA可用: $(python -c 'import torch; print(torch.cuda.is_available())')"
echo "GPU数量: $(python -c 'import torch; print(torch.cuda.device_count())')"
echo "torchpack: $(which torchpack)"
echo "mmcv: $(python -c 'import mmcv; print(mmcv.__version__)')"
echo ""
echo "=== 库文件检查 ==="
find /opt/conda -name "libtorch_cuda_cu.so" 2>/dev/null | head -1
EOF
chmod +x check_env.sh
bash check_env.sh
📁 关键文件清单
配置文件
configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/
├── multitask_BEV2X_phase4a.yaml # Phase 4A配置 (BEV 2x)
└── multitask_enhanced_phase1_HIGHRES.yaml # Phase 3配置 (当前)
启动脚本
/workspace/bevfusion/
├── start_phase4a_bev2x_fixed.sh # Phase 4A启动脚本 ⭐
├── START_PHASE4A_BEV2X.sh # 备用启动脚本
├── monitor_phase4a.sh # 监控脚本
└── start_enhanced_training_fixed.sh # Phase 3成功的启动脚本(参考)
Checkpoint
runs/enhanced_from_epoch19/
├── epoch_23.pth # Phase 3最终模型 (516MB) ⭐
├── epoch_22.pth # Phase 3最佳NDS模型
├── epoch_21.pth # Phase 3最佳mAP模型
└── latest.pth -> epoch_23.pth
日志文件
enhanced_training_6gpus.log # Phase 3训练日志
phase4a_bev2x_20251030_*.log # Phase 4A启动尝试日志
🔍 环境问题排查清单
启动前检查项
- Docker容器是否正常运行
- Python环境路径是否正确 (
which python=/opt/conda/bin/python) - torchpack是否可用 (
which torchpack) - PyTorch CUDA是否可用 (
python -c "import torch; print(torch.cuda.is_available())") - mmcv是否正常 (
python -c "import mmcv") - GPU是否空闲 (
nvidia-smi) - Checkpoint是否存在 (
ls -lh runs/enhanced_from_epoch19/epoch_23.pth) - 配置文件是否存在 (
ls -lh configs/.../multitask_BEV2X_phase4a.yaml)
启动后检查项
- 训练进程是否运行 (
ps aux | grep "python tools/train.py") - GPU显存是否被占用 (
nvidia-smi) - 日志文件是否生成 (
ls -lh phase4a_bev2x_*.log) - 日志中是否有"Epoch"关键字 (
grep "Epoch" phase4a_bev2x_*.log) - 是否开始加载数据 (
grep "Loading" phase4a_bev2x_*.log)
📊 Phase 4A vs Phase 3 对比
| 维度 | Phase 3 | Phase 4A | 备注 |
|---|---|---|---|
| 训练时间 | 8天 (23 epochs) | 预计12.5天 (20 epochs) | BEV 2x计算量增加 |
| 显存占用 | ~19GB/GPU | 预计~28GB/GPU | 分辨率提升4倍 |
| BEV分辨率 | 0.3m (360×360) | 0.15m (720×720) | 核心改进 |
| Decoder深度 | 2层 | 4层 | 特征提取增强 |
| 小目标IoU | Stop Line 0.27 | 目标 0.42+ | 关键提升点 |
| 训练稳定性 | 优秀 | 待验证 | 需监控OOM |
💡 重要提示
显存管理
BEV 2x显存需求:
- Feature maps增加4倍
- 预计单GPU: 28-29GB
- V100S 32GB: 余量3-4GB ✅ 足够
- 如果OOM: 降低batch_size或启用梯度检查点
训练监控
关键指标:
1. GPU显存: 应在28-30GB
2. 训练速度: 预计4.5-5s/iter
3. Loss下降: 初始应类似Phase 3
4. 小目标IoU: 重点关注Stop Line和Divider
备份策略
建议每个epoch保存checkpoint:
- 磁盘空间充足 (86% used, 还有60GB+)
- Checkpoint大小: ~516MB/个
- 20 epochs = 10.3GB (可接受)
📅 时间规划
Phase 4A预计时间表:
Day 1 (启动后):
- 环境问题解决
- 训练启动成功
- 第1次iteration完成
Day 2-3:
- Epoch 1完成
- 检查显存使用
- 验证训练稳定性
Day 5:
- Epoch 3-4完成
- 初步评估性能提升
- 确认小目标IoU改善
Day 13 (预计):
- 20 epochs完成
- 全面性能评估
- 选择最佳checkpoint
总耗时: 约13天
🎯 成功标准
Phase 4A最低要求
✅ 必须达到:
- 训练稳定完成20 epochs
- NDS保持 > 0.68 (不低于Phase 3太多)
- Stop Line IoU > 0.35 (当前0.27)
- Divider IoU > 0.25 (当前0.19)
- 无OOM错误
Phase 4A理想目标
🌟 期望达到:
- NDS > 0.71
- mAP > 0.67
- mIoU > 0.52
- Stop Line IoU > 0.42
- Divider IoU > 0.35
- 训练速度 < 5s/iter
记录人: AI Assistant
最后更新: 2025-10-30 10:30
状态: ⏸️ 等待环境恢复
下一步: 解决环境问题后,执行 bash start_phase4a_bev2x_fixed.sh