关于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变量与赋值
Apr 03 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 Python
Python检测数据类型的方法总结
May 20 Python
用python做游戏的细节详解
Jun 25 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
Python如何在DataFrame增加数值
Feb 14 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
Anaconda使用IDLE的实现示例
Sep 23 Python
Python 如何解决稀疏矩阵运算
May 26 Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
php设计模式之命令模式的应用详解
2013/05/21 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
smarty实现多级分类的方法
2014/12/05 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
document.documentElement && document.documentElement.scrollTop
2007/12/01 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
jQuery cdn使用介绍
2013/05/08 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
2018/08/14 Javascript
vue中使用gojs/jointjs的示例代码
2018/08/24 Javascript
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
Python3基础之基本运算符概述
2014/08/13 Python
python字典基本操作实例分析
2015/07/11 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
python中正则的使用指南
2016/12/04 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
泰国时尚电商:POMELO Fashion
2020/03/11 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
尊师重教演讲稿
2014/09/04 职场文书