关于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 splitlines使用技巧
Sep 06 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
Django框架搭建的简易图书信息网站案例
May 25 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
opencv导入头文件时报错#include的解决方法
Jul 31 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
Python如何使用字符打印照片
Jan 03 Python
python新手学习可变和不可变对象
Jun 11 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 Python
python基础学习之生成器与文件系统知识总结
May 25 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 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通用防注入程序 推荐
2011/02/26 PHP
PHP基础教程(php入门基础教程)一些code代码
2013/01/06 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
php遍历CSV类实例
2015/04/14 PHP
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
javascript常用代码段搜集
2014/12/04 Javascript
在Vue中使用Compass的方法
2018/03/02 Javascript
JS实现的base64加密解密操作示例
2018/04/18 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
Python处理JSON数据并生成条形图
2016/08/05 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
css3 按钮样式简单可扩展创建
2013/03/18 HTML / CSS
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
台湾最大网路书店:博客来
2018/03/18 全球购物
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
华为的Java面试题
2014/03/07 面试题
三年级科学教学反思
2014/01/29 职场文书
求职信范文怎么写
2014/01/29 职场文书
大学军训感言300字
2014/03/09 职场文书
教师党员个人总结
2015/02/10 职场文书
教师节主题班会方案
2015/08/17 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书
css3 文字断裂效果
2022/04/22 HTML / CSS
Python如何快速找到多个字典中的公共键(key)
2022/04/29 Python