当前位置:主页 > python教程 > 关于pytorch多GPU训练实例与性能对比分析

pytorch多GPU训练实例与性能对比

发布:2020-01-16 22:22:24 139


给大家整理了pytorch实例相关的编程文章,网友隆信然根据主题投稿了本篇教程内容,涉及到pytorch、GPU、训练实例、关于pytorch多GPU训练实例与性能对比分析相关内容,已被173网友关注,相关难点技巧可以阅读下方的电子资料。

关于pytorch多GPU训练实例与性能对比分析

以下实验是我在百度公司实习的时候做的,记录下来留个小经验。

多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训练实例与性能对比分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。


参考资料

相关文章

  • Pytorch中如何调用forward()函数

    发布:2023-04-06

    这篇文章主要介绍了Pytorch中如何调用forward()函数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • pytorch transform数据处理转c++问题

    发布:2023-04-21

    这篇文章主要介绍了pytorch transform数据处理转c++问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • 模型训练时GPU利用率太低的原因及解决

    发布:2023-03-31

    这篇文章主要介绍了模型训练时GPU利用率太低的原因及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • Pytorch中TensorDataset,DataLoader的联合使用方式

    发布:2023-04-03

    这篇文章主要介绍了Pytorch中TensorDataset,DataLoader的联合使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • GPU版本安装Pytorch的最新方法步骤

    发布:2023-04-11

    最近深度学习需要用GPU版本的pytorch来加速运算,所以下面这篇文章主要给大家介绍了关于GPU版本安装Pytorch的最新方法步骤,文中通过实例代码介绍的非常详细,需要的朋友可以参考下


  • 关于pytorch相关部分矩阵变换函数的问题分析

    发布:2022-04-24

    这篇文章主要介绍了pytorch相关部分矩阵变换函数,包括tensor维度顺序变换BCHW顺序的调整,矩阵乘法相关函数,矩阵乘,点乘,求取矩阵对角线元素或非对角线元素的问题,本文给大家介绍的非常详细,需要的朋友可以参考下


  • Pytorch实现将label变成one hot编码的两种方式

    发布:2023-04-25

    这篇文章主要介绍了Pytorch实现将label变成one hot编码的两种方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • 详解pytorch 调整某一维度数据顺序

    发布:2020-03-05

    今天小编就为大家分享一篇pytorch 调整某一维度数据顺序的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


网友讨论