关于pytorch多GPU训练实例与性能对比分析


Posted in Python onAugust 19, 2019

以下实验是我在百度公司实习的时候做的,记录下来留个小经验。

多GPU训练

cifar10_97.23 使用 run.sh 文件开始训练

cifar10_97.50 使用 run.4GPU.sh 开始训练

在集群中改变GPU调用个数修改 run.sh 文件

nohup srun --job-name=cf23 $pt --gres=gpu:2 -n1 bash cluster_run.sh $cmd 2>&1 1>>log.cf50_2GPU &

修改 ?gres=gpu:2 即可

Python 文件代码修改

parser.add_argument('--batch_size', type=int, default=96*2, help='batch size')

修改对应 batch size 大小,保证每块GPU获得等量的训练数据,因为batch_size的改变会影响训练精度

最容易实现的单GPU训练改为多GPU训练代码

单GPU:logits, logits_aux = model(input)

多GPU:

if torch.cuda.device_count()>1:#判断是否能够有大于一的GPU资源可以调用

   logits, logits_aux =nn.parallel.data_parallel(model,input)

  else:

   logits, logits_aux = model(input)

缺点:不是性能最好的实现方式

优点:代码嵌入适应性强,不容易报错

性能分析

该图为1到8GPU训练cifar10——97.23网络的实验对比

关于pytorch多GPU训练实例与性能对比分析

可以看到单核训练600轮需要53小时、双核训练600轮需要26小时、四核16、六核14、八核13。

在可运行7小时的GPU上的对比实验:单核跑完83轮、双核跑完163轮、四核跑完266轮

结论:性价比较高的是使用4~6核GPU进行训练,但是多GPU训练对于单GPU训练有所差异,训练的准确率提升会有所波动,目前发现的是负面的影响。

以上这篇关于pytorch多GPU训练实例与性能对比分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python的re模块应用实例
Sep 26 Python
python爬虫入门教程--正则表达式完全指南(五)
May 25 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
python matplotlib中文显示参数设置解析
Dec 15 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
Python基于whois模块简单识别网站域名及所有者的方法
Apr 23 Python
一篇文章弄懂Python中所有数组数据类型
Jun 23 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
让你的Python代码实现类型提示功能
Nov 19 Python
python读取ini配置文件过程示范
Dec 23 Python
python实现加密的方式总结
Jan 19 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
pytorch 更改预训练模型网络结构的方法
Aug 19 #Python
pytorch打印网络结构的实例
Aug 19 #Python
pytorch索引查找 index_select的例子
Aug 18 #Python
浅谈Pytorch中的torch.gather函数的含义
Aug 18 #Python
PyTorch中Tensor的维度变换实现
Aug 18 #Python
PyTorch中Tensor的拼接与拆分的实现
Aug 18 #Python
详解PyTorch中Tensor的高阶操作
Aug 18 #Python
You might like
PHP 数字左侧自动补0
2008/03/31 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
IE图片缓存document.execCommand("BackgroundImageCache",false,true)
2011/03/01 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
理解javascript中try...catch...finally
2015/12/25 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
JavaScript 函数的执行过程
2016/05/09 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
Bootstrap表单控件学习使用
2017/03/07 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
js中el表达式的使用和非空判断方法
2018/03/28 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
[05:08]DOTA2-DPC中国联赛3月6日Recap集锦
2021/03/11 DOTA
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
python使用建议与技巧分享(二)
2020/08/17 Python
Python之字典对象的几种创建方法
2020/09/30 Python
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
微软新西兰官方网站:Microsoft New Zealand
2018/08/17 全球购物
国际领先的在线时尚服装和配饰店:DressLily
2019/03/03 全球购物
大学生毕业自我评价范文分享
2013/11/11 职场文书
小学运动会表扬稿
2014/01/19 职场文书
大班亲子运动会方案
2014/06/10 职场文书
小学思品教学反思
2016/02/20 职场文书
《秋思》教学反思
2016/02/23 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
Python何绘制带有背景色块的折线图
2022/04/23 Python