【Tensorflow object detection API】多GPU卡并行训练+Ubuntu 16.04(完美运行,教程步骤清晰!!)

  • 问题描述:我的电脑有3块2080ti的GPU,在采用Tensorflow object_detection API原有的model_main.py进行训练时,源于tensorflow本身性质,直接占满3块GPU,本来以为这样就是利用了多卡进行训练(结果还是想得太简单);
  • 出错:可是将batch_size设置成128就会显存溢出,照理GPU的性能是够用的
  • 解决思路
    利用nvidia-smi命令观察GPU使用情况,发现虽然是占满了3张卡,可是默认只使用了1张卡在训练,并没有利用3卡训练,如下图:
    在这里插入图片描述
解决办法:
  1. 不能采用model_main.py训练,因为Estimator分发策略不适用于tf.contrib.slim。所以没有关于分布式训练,多卡训练的部分。
  2. 具体步骤有2步:
    (1)采用/legacy/train.py用2张卡进行训练:
    其中CUDA_VISIBLE_DEVICES=0,1代表使用0号GPU和1号GPU;
CUDA_VISIBLE_DEVICES=0,1 python3 object_detection/legacy/train.py \
  --logtostderr  \
  --pipeline_config_path=object_detection/ssd_model/ssd_mobilenet_v1_pets.config  \
  --train_dir=object_detection/ssd_model/training6 \
  --num_clones=2  --ps_tasks=1

(2)采用legacy/eval.py用剩下1张卡进行评估:


CUDA_VISIBLE_DEVICES=2 python object_detection/legacy/eval.py \
  --logtostderr  \
  --pipeline_config_path=object_detection/ssd_model/ssd_mobilenet_v1_pets.config  \
  --checkpoint_dir=object_detection/ssd_model/training6 \
  --eval_dir=object_detection/ssd_model/eval6
  1. 采用如上步骤后,可以看到完美的利用了3张GPU,可以将batch_size调大了!!
    在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值