本篇记录如何使用多张GPU 显示卡,加速TensorFlow Object Detection API 模型训练的过程。

虽然TensorFlow Object Detection API 已经有支援多张GPU 卡平行计算的功能,但是缺乏说明文件,所以我自己也不是非常确定该怎么用,以下只是我目前尝试出来的方式,仅供参考。

这里我们接续之前的TensorFlow Object Detection API自行训练模型教学,将Oxford-IIIT Pet Dataset的范例改成多GPU的版本。

使用多GPU卡时,会把每个batch的资料分散至每张GPU卡,也就是可以让batch size变大,所以在train_configbatch_size要自己修改一下,要让资料可以平均分散至每张GPU卡,最简单的修改方式就是看自己有多少张GPU卡,就乘以多少。

在预设的设定值中,batch_size的值是1,现在我打算用3张GPU卡,所以就改成3

train_config: {batch_size: 3optimizer {# [略]}# [略]
}

由于batch size变大了,收敛的速度应该也会变快,所以optimizer内的参数应该也是要改的,不过要怎么改就要看实际情况而定,这个部分就自己看着办。

改好设定档之后,接着就可以使用多张GPU 卡平行运算,使用的指令几乎没有变,只是加上两个参数:

  • --num_clones:指定GPU 卡的数量。
  • --ps_tasks:指定参数伺服器的数量。

另外再以CUDA_VISIBLE_DEVICES指定要使用哪几张GPU卡,完整的指令搞如下:

#设定档路径
PIPELINE_CONFIG = " object_detection/data/faster_rcnn_resnet101_pets.config "#训练结果放置路径
MY_MODEL_DIR = " my_model "#使用前三张GPU卡进行训练
CUDA_VISIBLE_DEVICES = 0 , 1 , 2 python object_detection/train.py \ --logtostderr  \ --pipeline_config_path= ${ PIPELINE_CONFIG }  \ --train_dir= ${ MY_MODEL_DIR } /train \ --num_clones =3  --ps_tasks=1#使用第四张GPU卡进行验证
CUDA_VISIBLE_DEVICES = 3 python object_detection/ eval .py \ --logtostderr  \ --pipeline_config_path= ${ PIPELINE_CONFIG }  \ --checkpoint_dir= ${ MY_MODEL_DIR } /train \ --eval_dir= ${ MY_MODEL_DIR } / eval

指令执行之后,我们可以使用nvidia-smi来查看每一张GPU卡的使用情况,看看是不是真的有同时用到三张GPU卡训练:

nvidia-smi
<span style="color:#111111">Tue Dec 26 15:35:34 2017
+------------------------------------------------- ----------------------------+
| NVIDIA-SMI 384.81 Driver Version: 384.81 |
|-------------------------------+----------------- -----+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+================= =====+======================|
| 0 TITAN Xp Off | 00000000:02:00.0 Off | N/A |
| 44% 72C P2 186W / 250W | 11763MiB / 12189MiB | 84% Default |
+-------------------------------+----------------- -----+----------------------+
| 1 TITAN Xp Off | 00000000:03:00.0 Off | N/A |
| 47% 76C P2 124W / 250W | 11763MiB / 12189MiB | 76% Default |
+-------------------------------+----------------- -----+----------------------+
| 2 TITAN Xp Off | 00000000:83:00.0 Off | N/A |
| 42% 70C P2 131W / 250W | 11763MiB / 12189MiB | 72% Default |
+-------------------------------+----------------- -----+----------------------+
| 3 TITAN Xp Off | 00000000:84:00.0 Off | N/A |
| 23% 41C P2 72W / 250W | 11761MiB / 12189MiB | 51% Default |
+-------------------------------+----------------- -----+----------------------++------------------------------------------------- ----------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|================================================= ============================|
| 0 22192 C python 11751MiB |
| 1 22192 C python 11751MiB |
| 2 22192 C python 11751MiB |
| 3 29266 C python 11751MiB |
+------------------------------------------------- ----------------------------+</span>

在训练的过程中,如果仔细观察每步的计算速度,应该会发现使用一张GPU 卡的速度会跟使用多张GPU 卡差不多。这是单张GPU 卡的速度:

单张GPU 卡计算速度

这是同时使用三张GPU 卡的计算速度:

三张GPU 卡计算速度

速度会差不多是正常的(理论上多张GPU 卡运算的速度会变慢一点点),因为两边的batch size 不同,若每步的计算时间差不多,就表示实际的计算速度有增加。

原文:https://blog.gtwang.org/programming/tensorflow-object-detection-api-multiple-gpu-parallel-training/

TensorFlow Object Detection API 多GPU 卡平行计算,加速模型训练速度教学相关推荐

  1. 转 TensorFlow Object Detection API 多GPU 卡平行计算,加速模型训练速度教学

    本篇记录如何使用多张GPU 显示卡,加速TensorFlow Object Detection API 模型训练的过程. 虽然TensorFlow Object Detection API 已经有支援 ...

  2. Tensorflow object detection API 搭建属于自己的物体识别模型(转载修改)

    Tensorflow object detection API 搭建属于自己的物体识别模型 电脑配置信息 开始搭建环境 测试自带案例 准备训练图片 配置文件与模型 开始训练模型 生成最终的训练文件 测 ...

  3. Tensorflow object detection API 搭建属于自己的物体识别模型1环境搭建与测试

    https://blog.csdn.net/dy_guox/article/details/79111949 后续博客地址(附带视频教程) ------------------------------ ...

  4. Tensorflow object detection API 搭建物体识别模型

    ----------------------------------------------------先把别人博客教程跑通-------------------------------------- ...

  5. 基于TensorFlow Object Detection API训练自己的目标识别模型

    基于TensorFlow Object Detection API训练自己的目标识别模型 环境 Windows10 CUDA_9 Cudnn_9.0 Anaconda3-5.2.0 Tensorflo ...

  6. 谷歌开放的TensorFlow Object Detection API 效果如何?对业界有什么影响

    ? 谷歌开放了一个 Object Detection API: Supercharge your C 写个简单的科普帖吧. 熟悉TensorFlow的人都知道,tf在Github上的主页是:tenso ...

  7. Tensorflow Object detection API 在 Windows10 配置

    Tensorflow Object detection API 在 Windows10 下的配置不如在 Ubuntu 下配置方便,但还是有方法的,介绍一下我的配置流程. 官方目标检测的demo中调用了 ...

  8. Tensorflow object detection API 搭建自己的目标检测模型并迁移到Android上

    参考链接:https://blog.csdn.net/dy_guox/article/details/79111949 之前参考上述一系列博客在Windows10下面成功运行了TensorFlow A ...

  9. ssd目标检测训练自己的数据_目标检测Tensorflow object detection API之训练自己的数据集...

    构建自己的模型之前,推荐先跑一下Tensorflow object detection API的demo JustDoIT:目标检测Tensorflow object detection API​zh ...

最新文章

  1. 听说今天你要答辩了?哈哈哈哈哈哈哈哈哈
  2. STL sort()函数详解
  3. ElasticSearch 基础概念学习(未完)
  4. js进阶 9-11 select选项框如何动态添加和删除元素
  5. 【Unity3D基础】让物体动起来②--UGUI鼠标点击逐帧移动
  6. SpringCloud+Redis
  7. php 引入echarts路径,angular4中引入echarts的方法(代码示例)
  8. mysql循环建表_MySQL 开发准则(总结自阿里巴巴开发手册)
  9. 用python写个电子钟_[TPYBoard - Micropython之会python就能做硬件 3] 制作电子时钟
  10. 大数据系列博客之 --- 深入简出 Shell 脚本语言(提升篇)
  11. hive表名命名规范_数据仓库开发规范
  12. “世界百位名人”诠释上海世博会城市主题
  13. Win10关闭安全中心的病毒和威胁实时保护
  14. A Benchmark and Simulator for UAV Tracking(论文翻译)
  15. 这是我家养的睡莲 开花了
  16. 超稳定的接口——淘宝/天猫获得淘宝商品详情
  17. 「好书推荐」《边城》沈从文的乡土情怀代表作,汪曾祺、林徽因、曹文轩等真情推荐!
  18. ‘xxx‘ “将对您的电脑造成伤害。 您应该将它移到废纸篓。”mac一直弹窗并关不掉的解决方式
  19. Win10+VS2017的C++属性配置表
  20. Arcgis如何让其显示中文(英文)

热门文章

  1. 主题和母版页(母版页)
  2. win10动态壁纸怎么设置_酷狗也能设置动态壁纸???
  3. 春风十里,美拉德在人人投等你!
  4. 基于Android的驾校预约管理系统
  5. MOSFET管应用总结
  6. 通达信股本变迁文件(gbbq)解密方法
  7. Android adb 环境变量配置的坑 adb 不是内部或外部命令
  8. Android GridView实现自定义日程表课表
  9. 种植业适宜性评价算法
  10. mysql中使用CONCAT()函数,TRUNCATE()函数将小数转换成百分比