mmdetection训练问题汇总(持续更新)

1、关于多卡训练

mmdetection官方提供方式:

./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]

例如:

./tools/dist_train.sh config/swin/mask_rcnn_swin-t-p4-w7_fpn_1x_coco 4

上述指令代表使用默认的4块GPU参与训练。
如果需要指定特定的几个GPU来训练,可以使用如下的指令:
直接在终端使用:

CUDA_VISIBLE_DEVICES=0,1,2 ./tools/dist_train.sh config/swin/mask_rcnn_swin-t-p4-w7_fpn_1x_coco 3

1.1 端口被占用

上述指令代表使用0,1和2三块GPU来参与模型训练。
在服务器执行多个训练任务时,可能出现进程端口被占用的问题:

RuntimeError: Address already in use

这是由于dist_train.py文件中,端口号已经固定了,手动修改一个即可。如下所示,将29500修改为29502

CONFIG=$1
GPUS=$2
NNODES=${NNODES:-1}
NODE_RANK=${NODE_RANK:-0}
PORT=${PORT:-29502}
MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"}
PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \
python -m torch.distributed.launch \
    --nnodes=$NNODES \
    --node_rank=$NODE_RANK \
    --master_addr=$MASTER_ADDR \
    --nproc_per_node=$GPUS \
    --master_port=$PORT \
    $(dirname "$0")/train.py \
    $CONFIG \
    --seed 0 \
    --launcher pytorch ${@:3}

1.2 显存被占用

当执行训练程序出现报错的问题之后,可能指定的GPU的显存已经被占用了绝大部分,当再执行时,肯定提示显存不够。这时候应该将后台执行的相关程序(进程)杀死掉。
查看执行的所有进程可以用2条命令来实现:

1)ps aux;
2)ps -ef | grep python

通过kill -9 待杀死的进程ID,来停止对应进程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值