PETRV2-BEV训练教程:VisualDL本地8080端口转发与远程Loss曲线查看
1. 环境准备与快速开始
想要训练PETRV2-BEV模型但不知道从何入手?今天我来带你一步步完成整个训练流程,重点教你如何通过VisualDL实时查看训练过程中的Loss曲线,即使是在远程服务器上训练也能轻松监控。
使用星图AI算力平台训练PETRV2-BEV模型是个不错的选择,它提供了强大的计算资源和预配置的环境,让我们能够专注于模型训练本身。
首先进入准备好的conda环境:
conda activate paddle3d_env这个环境已经包含了所有必要的依赖,省去了自己配置环境的麻烦。
2. 下载依赖与数据准备
2.1 获取预训练权重
我们从官方源下载PETRV2的预训练模型权重:
wget -O /root/workspace/model.pdparams https://paddle3d.bj.bcebos.com/models/petr/petrv2_vovnet_gridmask_p4_800x320/model.pdparams预训练权重能大大加速模型收敛,建议始终从预训练模型开始训练。
2.2 准备nuscenes数据集
接下来下载nuscenes v1.0-mini数据集,这个数据集大小适中,适合快速验证和调试:
wget -O /root/workspace/v1.0-mini.tgz https://www.nuscenes.org/data/v1.0-mini.tgz mkdir -p /root/workspace/nuscenes tar -xf /root/workspace/v1.0-mini.tgz -C /root/workspace/nuscenes数据集下载完成后,我们需要进行预处理。
3. 训练nuscenes数据集
3.1 数据集预处理
进入Paddle3D目录并准备数据集标注信息:
cd /usr/local/Paddle3D rm /root/workspace/nuscenes/petr_nuscenes_annotation_* -f python3 tools/create_petr_nus_infos.py --dataset_root /root/workspace/nuscenes/ --save_dir /root/workspace/nuscenes/ --mode mini_val这个步骤会生成模型训练所需的标注文件。
3.2 测试初始精度
在开始训练前,我们先测试一下预训练模型在nuscenes数据集上的初始精度:
python tools/evaluate.py \ --config configs/petr/petrv2_vovnet_gridmask_p4_800x320_nuscene.yml \ --model /root/workspace/model.pdparams \ --dataset_root /root/workspace/nuscenes/你会看到类似这样的输出结果:
mAP: 0.2669 mATE: 0.7448 mASE: 0.4621 mAOE: 1.4553 mAVE: 0.2500 mAAE: 1.0000 NDS: 0.2878 Eval time: 5.8s这些指标反映了模型在当前数据集上的表现,训练后我们会再次评估看提升效果。
3.3 开始模型训练
现在开始正式训练,我们设置100个epoch,使用较小的batch size和学习率:
python tools/train.py \ --config configs/petr/petrv2_vovnet_gridmask_p4_800x320_nuscene.yml \ --model /root/workspace/model.pdparams \ --dataset_root /root/workspace/nuscenes/ \ --epochs 100 \ --batch_size 2 \ --log_interval 10 \ --learning_rate 1e-4 \ --save_interval 5 \ --do_eval训练过程中,模型会每5个epoch保存一次检查点,并每10个step输出一次日志。
4. VisualDL可视化与端口转发
4.1 启动VisualDL服务
训练开始后,我们启动VisualDL来可视化训练过程:
visualdl --logdir ./output/ --host 0.0.0.0这个命令会启动一个VisualDL服务,默认在本地8080端口监听。但是因为我们是在远程服务器上训练,需要特殊方法才能访问。
4.2 本地端口转发到远程
这是最关键的一步——将本地的8888端口转发到远程服务器的8040端口(VisualDL服务):
ssh -p 31264 -L 0.0.0.0:8888:localhost:8040 root@gpu-09rxs0pcu2.ssh.gpu.csdn.net解释一下这个命令:
-p 31264:指定SSH端口号-L 0.0.0.0:8888:localhost:8040:将本地8888端口映射到远程的8040端口- 最后是远程服务器的地址
4.3 查看Loss曲线
转发设置完成后,在本地浏览器访问http://localhost:8888,就能看到实时的训练Loss曲线和其他监控指标了。
通过VisualDL界面,你可以:
- 实时观察训练Loss和验证Loss的变化
- 监控学习率调整情况
- 查看模型评估指标随时间的变化
- 分析训练过程中的各种统计信息
5. 模型导出与演示
5.1 导出推理模型
训练完成后,我们将最佳模型导出为PaddleInference格式:
rm -rf /root/workspace/nuscenes_release_model mkdir -p /root/workspace/nuscenes_release_model python tools/export.py \ --config configs/petr/petrv2_vovnet_gridmask_p4_800x320_nuscene.yml \ --model output/best_model/model.pdparams \ --save_dir /root/workspace/nuscenes_release_model导出的模型可以用于部署和推理,速度比训练模式快很多。
5.2 运行演示程序
最后,我们运行demo程序来可视化模型推理结果:
python tools/demo.py /root/workspace/nuscenes/ /root/workspace/nuscenes_release_model nuscenes这个demo会展示模型在测试数据上的检测效果,让你直观看到训练成果。
6. 总结
通过本教程,你学会了:
- 环境准备:快速搭建PETRV2训练环境
- 数据预处理:准备nuscenes数据集并进行标注
- 模型训练:配置训练参数并启动训练过程
- 可视化监控:使用VisualDL和端口转发远程查看Loss曲线
- 模型导出:将训练好的模型导出为部署格式
实用建议:
- 训练过程中经常查看Loss曲线,及时发现训练问题
- 如果Loss不下降,尝试调整学习率或batch size
- 使用端口转发时,确保本地端口没有被其他程序占用
- 训练完成后务必运行demo验证模型效果
VisualDL的可视化功能非常强大,除了Loss曲线外,还可以查看模型结构、数据分布等信息,建议多多探索这些功能来优化训练过程。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。