4.3 KiB
4.3 KiB
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