TensorFlow Object Detection API 多GPU 卡平行计算,加速模型训练速度教学
本篇记录如何使用多张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_config
的batch_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 卡平行计算,加速模型训练速度教学相关推荐
- 转 TensorFlow Object Detection API 多GPU 卡平行计算,加速模型训练速度教学
本篇记录如何使用多张GPU 显示卡,加速TensorFlow Object Detection API 模型训练的过程. 虽然TensorFlow Object Detection API 已经有支援 ...
- Tensorflow object detection API 搭建属于自己的物体识别模型(转载修改)
Tensorflow object detection API 搭建属于自己的物体识别模型 电脑配置信息 开始搭建环境 测试自带案例 准备训练图片 配置文件与模型 开始训练模型 生成最终的训练文件 测 ...
- Tensorflow object detection API 搭建属于自己的物体识别模型1环境搭建与测试
https://blog.csdn.net/dy_guox/article/details/79111949 后续博客地址(附带视频教程) ------------------------------ ...
- Tensorflow object detection API 搭建物体识别模型
----------------------------------------------------先把别人博客教程跑通-------------------------------------- ...
- 基于TensorFlow Object Detection API训练自己的目标识别模型
基于TensorFlow Object Detection API训练自己的目标识别模型 环境 Windows10 CUDA_9 Cudnn_9.0 Anaconda3-5.2.0 Tensorflo ...
- 谷歌开放的TensorFlow Object Detection API 效果如何?对业界有什么影响
? 谷歌开放了一个 Object Detection API: Supercharge your C 写个简单的科普帖吧. 熟悉TensorFlow的人都知道,tf在Github上的主页是:tenso ...
- Tensorflow Object detection API 在 Windows10 配置
Tensorflow Object detection API 在 Windows10 下的配置不如在 Ubuntu 下配置方便,但还是有方法的,介绍一下我的配置流程. 官方目标检测的demo中调用了 ...
- Tensorflow object detection API 搭建自己的目标检测模型并迁移到Android上
参考链接:https://blog.csdn.net/dy_guox/article/details/79111949 之前参考上述一系列博客在Windows10下面成功运行了TensorFlow A ...
- ssd目标检测训练自己的数据_目标检测Tensorflow object detection API之训练自己的数据集...
构建自己的模型之前,推荐先跑一下Tensorflow object detection API的demo JustDoIT:目标检测Tensorflow object detection APIzh ...
最新文章
- 听说今天你要答辩了?哈哈哈哈哈哈哈哈哈
- STL sort()函数详解
- ElasticSearch 基础概念学习(未完)
- js进阶 9-11 select选项框如何动态添加和删除元素
- 【Unity3D基础】让物体动起来②--UGUI鼠标点击逐帧移动
- SpringCloud+Redis
- php 引入echarts路径,angular4中引入echarts的方法(代码示例)
- mysql循环建表_MySQL 开发准则(总结自阿里巴巴开发手册)
- 用python写个电子钟_[TPYBoard - Micropython之会python就能做硬件 3] 制作电子时钟
- 大数据系列博客之 --- 深入简出 Shell 脚本语言(提升篇)
- hive表名命名规范_数据仓库开发规范
- “世界百位名人”诠释上海世博会城市主题
- Win10关闭安全中心的病毒和威胁实时保护
- A Benchmark and Simulator for UAV Tracking(论文翻译)
- 这是我家养的睡莲 开花了
- 超稳定的接口——淘宝/天猫获得淘宝商品详情
- 「好书推荐」《边城》沈从文的乡土情怀代表作,汪曾祺、林徽因、曹文轩等真情推荐!
- ‘xxx‘ “将对您的电脑造成伤害。 您应该将它移到废纸篓。”mac一直弹窗并关不掉的解决方式
- Win10+VS2017的C++属性配置表
- Arcgis如何让其显示中文(英文)