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

多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网络的实验对比

可以看到单核训练600轮需要53小时、双核训练600轮需要26小时、四核16、六核14、八核13。

在可运行7小时的GPU上的对比实验:单核跑完83轮、双核跑完163轮、四核跑完266轮

结论:性价比较高的是使用4~6核GPU进行训练,但是多GPU训练对于单GPU训练有所差异,训练的准确率提升会有所波动,目前发现的是负面的影响。

pytorch多GPU训练实例与性能对比相关推荐

  1. pytorch 多GPU训练总结(DataParallel的使用)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_40087578/arti ...

  2. pytorch 多GPU训练

    pytorch 多GPU训练 pytorch多GPU最终还是没搞通,可用的部分是前向计算,back propagation会出错,当时运行通过,也不太确定是如何通过了的.目前是这样,有机会再来补充 p ...

  3. PyTorch 使用GPU训练

    Pytorch 使用GPU训练 使用 GPU 训练只需要在原来的代码中修改几处就可以了. 我们有两种方式实现代码在 GPU 上进行训练 ## 方法一 .cuda() 我们可以通过对网络模型,数据,损失 ...

  4. pytorch指定GPU训练

    主要讲单机多卡(单主机多GPUs训练) 使用多卡训练的方式有很多,当然前提是我们的设备中存在多个GPU:使用命令nvidia-smi查看当前Ubuntu平台的GPU数量,其中每个GPU被编上了序号:[ ...

  5. 【Pytorch神经网络实战案例】01 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-方法①

    import torch import torchvision from torch import nn from torch.utils.tensorboard import SummaryWrit ...

  6. 【Pytorch神经网络实战案例】02 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-方法②

    import torch import torchvision from torch import nn from torch.utils.tensorboard import SummaryWrit ...

  7. pytorch 解决gpu训练只占一块卡

    一:可以为不同的GPU分配不同的batch_size: 本文主要解决pytorch在进行模型训练时出现GPU的0卡占用显存比其他卡要多的问题. 出现0卡显存更高的原因:网络在反向传播的时候,计算los ...

  8. pytorch——多GPU训练,CPU测试出现的问题

    我在训练模型的时候使用了nn.DataParallel,并在在服务器gpu测试也同时将训练好的模型并行载入,这样没有问题,但是我将训练好的模型在本地cpu运行的时候出错.这里记录出错的地方,并记录大致 ...

  9. 【Pytorch神经网络实战案例】03 CIFAR-10数据集:Pytorch使用GPU训练CNN模版-测试方法

    import torch import torchvision from PIL import Image from torch import nnimage_path="./test_im ...

最新文章

  1. ACM寒假训练第一周总结
  2. C语言函数集(十八)
  3. tomcat8.5 远程访问 manager页面
  4. 不要把游戏当游戏,要把游戏当明星
  5. 个人软件过程4 功能说明和用户体验设计
  6. [转]hadoop新手错误解决方法
  7. windows如何调用Linux的API,Windows和Native API中的系统调用?
  8. React开发(124):ant design学习指南之form中的属性isFieldTouched
  9. python大作业爬虫_爬虫大作业
  10. ubuntu镜像添加jdk_docker基础镜像ubuntu添加jdk1.8
  11. Microsoft Visual C++ 2005 SP1无法安装
  12. IOS 7 Xcode 5 免IDP证书 真机调试
  13. 遗传算法初学-旅行商问题
  14. 手机上php文件用什么打开方式,php是什么文件格式 php文件打开方法【图文】
  15. POJ 3345 Bribing FIPA 树上背包
  16. macpro台式计算机,回顾经典的苹果Mac台式机 你见过几个?
  17. 17AHU排位赛3 C题 (LCS)
  18. 银行业务知识冲正交易
  19. unitoy机器人怎么联网_乐乐智能机器人怎么联网?
  20. Disk-expansion

热门文章

  1. 解决AndroidStudio修改代码运行没变化没生效的问题-Xposed插件重载
  2. 如何获取轮廓(连通域)的面积、周长、矩形度、圆形度、宽长比、周径比等形状描述符?
  3. c++复习日记1 类的继承与派生
  4. 【CloudXNS码农提示】为何CNAME和MX不能共存?
  5. vba,自定义公式,农历互转公历,excel ,wps
  6. xlistview+imageloder+数据请求+下拉刷新
  7. ambari关闭kerberos
  8. c语言程序设计菜鸟教程,C语言菜鸟基础教程之a++与++a
  9. 2014中国七大创业趋势
  10. gdtool解决在微信中点击棋牌游戏类app下载链接显示已停止访问打不开的问题