关于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库urllib与urllib2主要区别分析
Jul 13 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
Mar 15 Python
浅析Python装饰器以及装饰器模式
May 28 Python
python3解析库lxml的安装与基本使用
Jun 27 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
Python Opencv图像处理基本操作代码详解
Aug 31 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
Python基于Opencv识别两张相似图片
Apr 25 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静态新闻列表自动生成代码
2007/06/14 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
php读取目录所有文件信息dir示例
2014/03/18 PHP
php中请求url的五种方法总结
2017/07/13 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
Position属性之relative用法
2015/12/14 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
详解Python中的文本处理
2015/04/11 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
python中round函数保留两位小数的方法
2020/12/04 Python
在职人员函授期间自我评价分享
2013/11/08 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
负责人任命书范本
2014/06/04 职场文书
股东授权委托书范本
2014/09/13 职场文书
新郎结婚感言
2015/07/31 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
2019年公司快递收发管理制度模板
2019/11/20 职场文书
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
教你nginx跳转配置的四种方式
2022/07/07 Servers