前言
mmdetection的训练、调试和测试操作
一、训练
在相应的虚拟环境中训练,先找到train.py,看下里面的操作。在parse_args()里会有很多操作指令,训练自己看着加。或者
python tools/train.py -h # 会给出说明
# 单GPU训练
python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py
# 多GPU训练
bash tools/dist_train.sh configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py 2
多GPU训练的时候,固定了PID,如果想要利用GPU跑多个代码而不会产生冲突,可以在dist_train.sh代码里进行修改。
#!/usr/bin/env bash
CONFIG=$1
GPUS=$2
#PORT=${PORT:-29500} #原来的
PORT=${PORT:-$((-29500 + $RANDOM % 10))} # 加个随机值
PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
python -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT \
$(dirname "$0")/train.py $CONFIG --launcher pytorch ${@:3}
二、调试
因为训练的主代码一般都包含一些指令(eg,–gpu-ids),简单的点击debug按钮不能直接debug。
1.通过pycharm里的调试器调试
通过点击train里的Edit Configurations进行设置
首先,确定我们的工作目录,图里的Working directory,可以自己设置工作目录。如果像图上的打开之后是在mmdetection/tools里,我们在图里的Parameters添加指令时,就要清楚的知道怎么去设置文件的路径。(操作默认都是以mmdetection为工作目录,所以比如给configs路径时,你的工作路径是在tools,这时你就要…configs上一目录mmdetection下的configs)。后面的一些指令,就可以根据train.py里的parse_args()进行设置。
2.通过控制台调试
这个要将整个代码复制进去,或者复制整个代码后,点(不推荐调试大量的代码,可以自己验证一些操作的时候使用,效果和jupyter差不多,可以边写边看值)
测试
同训练一样,找到test.py。
# 单GPU测试
python tools/test.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py work_dirs(输出路径)/faster_rcnn_r50_fpn_1x_coco.py/latest.pth --eval bbox
# 多GPU训练
bash tools/dist_test.sh configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py work_dirs(输出路径)/faster_rcnn_r50_fpn_1x_coco.py/latest.pth 2 --eval bbox
tools
这里可以使用一些工具对数据集或者训练结果进行统计画图或者可视化操作
在上次讲的代码doc说明里可以查看相应操作。