关于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利用elaphe制作二维条形码实现代码
May 25 Python
Python中bisect的用法
Sep 23 Python
PyMongo安装使用笔记
Apr 27 Python
Python中的choice()方法使用详解
May 15 Python
用十张图详解TensorFlow数据读取机制(附代码)
Feb 06 Python
python实现批量图片格式转换
Jun 16 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
Jul 08 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
tesserocr与pytesseract模块的使用方法解析
Aug 30 Python
pyhton中__pycache__文件夹的产生与作用详解
Nov 24 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
php中文字符截取防乱码
2008/03/28 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
laravel请求参数校验方法
2019/10/10 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
javascript动态控制服务器控件实例
2014/09/05 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
Vue项目组件化工程开发实践方案
2018/01/09 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
python友情链接检查方法
2015/07/08 Python
python实现八大排序算法(2)
2017/09/14 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
应付会计岗位职责
2013/12/12 职场文书
预备党员的自我评价
2014/03/12 职场文书
文明班级建设方案
2014/05/15 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
营销总监岗位职责
2014/09/16 职场文书
商务考察邀请函模板
2015/02/02 职场文书
无工作证明怎么写
2015/06/15 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
Java 超详细讲解hashCode方法
2022/04/07 Java/Android