说一个 distributed 的坑。

一般如果用 DistributedDataParallel (分布式并行)的时候,每个进程单独跑在一个 GPU 上,多个卡的显存占用用该是均匀的,比如像这样的:

其实一般来说,在 Distributed 模式下,相当于你的代码分别在多个 GPU 上独立的运行,代码都是设备无关的。比如你写 t = torch.zeros(100, 100).cuda(),在4个进程上运行的程序会分别在4个 GPUs 上初始化 t。所以显存的占用会是均匀的。

但是有的时候你会发现另外几个进程会在0卡上占一部分显存,导致0卡显存出现瓶颈,可能会导致cuda-out-of-memory 错误。比如这样的:

我发现我的代码中有一处很隐蔽的地方会导致这种情况发生:当你用

checkpoint = torch.load("checkpoint.pth")

model.load_state_dict(checkpoint["state_dict"])

这样load一个 pretrained model 的时候,torch.load() 会默认把load进来的数据放到0卡上,这样4个进程全部会在0卡占用一部分显存。

解决的方法也很简单,就是把load进来的数据map到cpu上:

checkpoint = torch.load("checkpoint.pth", map_location=torch.device('cpu'))

model.load_state_dict(checkpoint["state_dict"])

广告一下最近看的两篇有意思的论文:朱见深:Learnable Group Convolutions:可以学习的分组卷积​zhuanlan.zhihu.com

julia有 pytorch包吗_PyTorch 有哪些坑/bug?相关推荐

  1. julia有 pytorch包吗_有了Julia语言,深度学习框架从此不需要计算图

    选自julialang 作者:Mike Innes 等 机器之心编译 参与:刘晓坤.思源 本文基于 NeurIPS MLSys 的一篇论文<Fashionable Modelling with ...

  2. julia有 pytorch包吗_GitHub发布年度机器学习榜:TensorFlow最火,PyTorch失踪,Julia第四...

    第一名毫无疑问是Python,Python在GitHub全站也非常热门,排名第三,仅次于Java和Java. 其他的机器学习常用语言则有C++.Java.Java.C#.Shell和Type,对比下面 ...

  3. julia有 pytorch包吗_用 PyTorch 实现基于字符的循环神经网络 | Linux 中国

    导读:在过去的几周里,我花了很多时间用 PyTorch 实现了一个 char-rnn 的版本.我以前从未训练过神经网络,所以这可能是一个有趣的开始. 本文字数:7201,阅读时长大约: 9分钟 htt ...

  4. python pytorch 包的安装

    python pytorch 包的安装 打开官网:https://pytorch.org/ https://pytorch.org/get-started/locally/

  5. Win10下NVIDIA-GForce940MX-Python3.9.7的Pytorch包安装经验分享(pip安装法)

    ----------------更新于2022.4.10---------------- 内容提要:安装Pytorch是进行人工神经网络深度学习必备的程序pag,在这里借用3W原则给大家进行解释. W ...

  6. 服务器(2080Ti)配置pytorch,distiller开发环境踩坑记录

    公司计算资源限制,将开发环境转移到学校实验室的服务器上进行,需要重新配置一遍开发环境.服务器配置为10块RTX 2080Ti的显卡.本以为有了之前一次配置环境的经验会很顺利,naive... 1.to ...

  7. 安装python及扩展包时遇到的一些坑

    安装python及扩展包时遇到的一些坑 安装python时,可勾选让其自动添加环境变量 用vscode配置python时,除了要下载python插件外,还需在setting中设置python解释器的路 ...

  8. 如何导入pytorch包_PyTorch 目前的运行途径

    1.首先先从官网上下载Anaconda软件 下载地址:https://www.anaconda.com/products/individual 然后下载到.exe应用程序:(只要下载一个就行,正常是下 ...

  9. pytorch进行图像识别_pytorch使用4种不同的模型进行面部表情识别

    pytorch进行图像识别 介绍: (Introduction:) This is a beginner-friendly project, with four different approache ...

最新文章

  1. 1.磁盘的数据结构包括那些内容?
  2. 2018-3-25论文(Whale Optimizer Algorithm)+(Gery Wolf Optimizer)笔记三---算法部分的对比
  3. Day20 Ajax
  4. 学习汇编语言 -王爽,自已完成的一道课程设计题 (5)
  5. 用Latex模板写简历
  6. cv dnn识别动作规范 open_OpenCV开发笔记(七十三):红胖子8分钟带你使用opencv+dnn+yolov3识别物体...
  7. 用ABAP实现SM36的设置后台JOB
  8. linux批量安装 五大开源软件挨个看,51CTO_Linux运维和管理:自动化监测.pdf
  9. 面向对象中的修饰关键词
  10. 免费个人博客:使用hexo+github搭建详细教程
  11. [转载] 2020最新Java面试题,常见面试题及答案汇总
  12. 笨办法学 Python · 续 练习 42:SQL 删除
  13. 【Mac】mac 安装Axure RP 8 点不开 就一直跳-后闪退-报错Expected an Int64 but got a System.UInt64
  14. python 核心编程 第一部分
  15. python视频免费百度云-Python开发视频百度云分享
  16. 调试错误:ValueError: Protocol message Feature has no quot;featurequot; field.
  17. LordPe dump进程内存实现
  18. 海尔微型计算机U盘启动,海尔台式电脑如何bios设置u盘启动教程
  19. 【craps赌博游戏】
  20. #2297. 战争调度(war)

热门文章

  1. 磁盘建立swap分区,gpt分区和磁盘LUKS加密、配额
  2. CSS3伸缩布局的应用
  3. POST+JSON+JS下载Excel或CSV
  4. 挑战面试编程:大整数的加、减、乘、除
  5. Linux Linux共享库
  6. 手机浏览器页面知识收集(转)
  7. 【Away3D代码解读】(一):主要类及说明
  8. Lync 小技巧-17-查询Lync 2013聊天记录
  9. 关于Object数组强转成Integer数组的问题:Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;...
  10. BZOJ 1193: [HNOI2006]马步距离【贪心+搜索】