关于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时区设置方法与pytz查询时区教程
Nov 27 Python
深入源码解析Python中的对象与类型
Dec 11 Python
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
python 打印出所有的对象/模块的属性(实例代码)
Sep 11 Python
Python实现求一个集合所有子集的示例
May 04 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
Jul 18 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 Python
详解如何管理多个Python版本和虚拟环境
May 10 Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 Python
Python中pymysql 模块的使用详解
Aug 12 Python
Python 合并拼接字符串的方法
Jul 28 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一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
PHP数组实例详解
2016/06/26 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
2019/10/12 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
关于jquery css的使用介绍
2013/04/18 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
10个JavaScript中易犯小错误
2016/02/14 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
vue-cli 使用axios的操作方法及整合axios的多种方法
2018/09/12 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
python多行字符串拼接使用小括号的方法
2020/03/19 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
Django如何重置migration的几种情景
2021/02/24 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
您的网上新华书店:文轩网
2016/08/24 全球购物
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
战友聚会邀请函
2014/01/18 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
超市食品安全承诺书
2015/04/29 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技