关于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 28 Python
Python中pygame安装方法图文详解
Nov 11 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
Nov 01 Python
python实现用户管理系统
Jan 10 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
Django实现文件上传下载
Oct 06 Python
Python FFT合成波形的实例
Dec 04 Python
Pytorch使用MNIST数据集实现CGAN和生成指定的数字方式
Jan 10 Python
django使用多个数据库的方法实例
Mar 04 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 array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
php 中的4种标记风格介绍
2012/05/10 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
Javascript Select操作大集合
2009/05/26 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
TinyMCE 新增本地图片上传功能
2010/11/05 Javascript
javascript模拟订火车票和退票示例
2014/04/24 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
JS中setTimeout的巧妙用法前端函数节流
2016/03/24 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
jQuery 选择方法及$(this)用法实例分析
2020/05/19 jQuery
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
python中管道用法入门实例
2015/06/04 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
matlab中实现矩阵删除一行或一列的方法
2018/04/04 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
Python正则表达式如何匹配中文
2020/05/27 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2013/01/18 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
二手房买卖协议书
2014/04/10 职场文书
农村优秀教师事迹材料
2014/08/27 职场文书
经理岗位职责
2015/02/02 职场文书
工作简历自我评价
2015/03/11 职场文书
2019假期福利管理制度!
2019/07/15 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python