bev-project/archive/docs_old/PHASE4A_QUICK_START.md

4.3 KiB
Raw Blame History

Phase 4A 快速启动指南

用途: 环境恢复后快速启动Phase 4A训练
更新时间: 2025-10-30


启动前检查清单

1. 环境诊断

cd /workspace/bevfusion

# 检查Python和库
python -c "import torch; print('PyTorch:', torch.__version__); print('CUDA:', torch.cuda.is_available())"
python -c "import mmcv; print('mmcv:', mmcv.__version__)"
which torchpack

# 检查GPU
nvidia-smi

# 预期结果:
# ✅ PyTorch: 1.10.1
# ✅ CUDA: True
# ✅ mmcv: 1.4.0
# ✅ torchpack: /opt/conda/bin/torchpack
# ✅ GPU: 8张空闲

2. 检查文件

# Checkpoint
ls -lh runs/enhanced_from_epoch19/epoch_23.pth
# 预期: 516MB

# 配置文件
ls -lh configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/multitask_BEV2X_phase4a.yaml
# 预期: 存在

# 启动脚本
ls -lh start_phase4a_bev2x_fixed.sh
# 预期: 可执行

🚀 启动命令

方式1: 使用启动脚本 (推荐)

cd /workspace/bevfusion
bash start_phase4a_bev2x_fixed.sh

方式2: 直接命令 (如果脚本有问题)

cd /workspace/bevfusion
export PATH=/opt/conda/bin:$PATH

/opt/conda/bin/torchpack dist-run -np 6 /opt/conda/bin/python tools/train.py \
  configs/nuscenes/det/transfusion/secfpn/camera+lidar/swint_v0p075/multitask_BEV2X_phase4a.yaml \
  --model.encoders.camera.backbone.init_cfg.checkpoint=pretrained/swint-nuimages-pretrained.pth \
  --load_from runs/enhanced_from_epoch19/epoch_23.pth \
  --data.samples_per_gpu 1 \
  --data.workers_per_gpu 0 \
  2>&1 | tee phase4a_bev2x.log

📊 监控训练

启动后立即检查 (1-2分钟)

# 检查进程
ps aux | grep "python tools/train.py" | grep -v grep
# 预期: 应看到6-15个进程

# 检查GPU
nvidia-smi
# 预期: GPU 0-5利用率应逐渐上升

# 检查日志
tail -50 phase4a_bev2x*.log | grep -E "Epoch|Loading"
# 预期: 看到数据加载信息

第一次iteration完成后 (5-10分钟)

# 查看训练日志
tail -100 phase4a_bev2x*.log | grep "Epoch \[1\]"

# 预期看到:
# Epoch [1][50/10299]  lr: xxx, loss: xxx, memory: ~28000

定期监控 (每小时)

# 使用监控脚本
bash monitor_phase4a.sh

# 或手动检查
tail -30 phase4a_bev2x*.log | grep "Epoch \[" | tail -5

🎯 Phase 4A 配置摘要

BEV分辨率:
  xbound: [-54.0, 54.0, 0.15]  # 2x提升
  ybound: [-54.0, 54.0, 0.15]
  输出: 720×720

Decoder:
  decoder_channels: [256, 256, 128, 128]  # 4层
  deep_supervision: true
  use_dice_loss: true

训练:
  max_epochs: 20
  batch_size: 1/GPU × 6GPU = 6
  learning_rate: 2e-5
  
显存预估: ~28-29GB/GPU
训练时间: ~12.5天

⚠️ 常见问题

Q1: 显存不足OOM

# 解决: 降低batch_size或启用梯度检查点
# 方案A: batch_size已经是1无法再降
# 方案B: 启用梯度检查点 (需修改配置)
# 方案C: 切换到BEV 1.5x (0.2m分辨率)

Q2: 训练速度太慢

# 预期: 4.5-5s/iter (比Phase 3的2.7s慢65%)
# 可接受: <6s/iter
# 如果>7s/iter: 检查是否有其他进程占用GPU

Q3: Loss不下降

# 检查: 学习率是否过低
# 检查: 是否成功加载epoch_23.pth的权重
# 检查: 配置文件是否正确

Q4: 环境错误重现

# 如果再次遇到libtorch_cuda_cu.so错误
# 解决: 重启Docker容器或系统
# 或: 联系管理员检查环境配置

📝 快速命令参考

# 启动训练
cd /workspace/bevfusion && bash start_phase4a_bev2x_fixed.sh

# 查看最新日志
tail -f phase4a_bev2x*.log

# 监控脚本
bash monitor_phase4a.sh

# 查看GPU
nvidia-smi

# 查看checkpoint
ls -lh runs/phase4a_bev2x/*.pth

# 停止训练 (如需要)
pkill -f "python tools/train.py"

# 评估checkpoint (训练中或训练后)
python tools/test.py \
  configs/.../multitask_BEV2X_phase4a.yaml \
  runs/phase4a_bev2x/epoch_X.pth \
  --eval bbox map

🎯 预期时间表

Day 0 (今天):     环境恢复 + 训练启动
Day 1:            Epoch 1完成检查显存
Day 2-3:          Epoch 2-3完成
Day 5:            Epoch 5完成初步评估 ⭐
Day 10:           Epoch 12-13完成中期检查
Day 13:           20 epochs完成最终评估 🎉

准备状态: 所有配置就绪
等待: 环境问题解决
一旦环境恢复: 立即执行 bash start_phase4a_bev2x_fixed.sh