bev-project/archive/docs_old/PHASE4A_STATUS_AND_ENVIRONM...

9.7 KiB
Raw Blame History

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

可能原因:

  1. 库路径未正确设置
  2. Docker环境可能需要重启
  3. Conda环境可能需要重新激活
  4. 系统库依赖问题

尝试过的解决方案:

# 尝试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