1. 问题概述

现在Pytorc下进行多卡训练主流的是采用torch.nn.parallel.DistributedDataParallel()(DDP)方法,但是在一些特殊的情况下这样的方法就使用不了了,特别是在进行与GAN相关的训练的时候,假如使用的损失函数是 WGAN-GP(LP),DRAGAN,那么其中会用到基于梯度的惩罚,其使用到的函数为torch.autograd.grad(),但是很不幸的是在实验的过程中该函数使用DDP会报错:

File "/home/work/anaconda3/envs/xxxxx_py/lib/python3.6/site-packages/torch/autograd/__init__.py", line 93, in backwardallow_unreachable=True)  # allow_unreachable flag
RuntimeError: derivative for batch_norm_backward_elemt is not implemented

那么需要并行(单机多卡)计算那么就只能使用torch.nn.DataParallel()了,但是也带来另外一个问题那就是负载极其不均衡,使用这个并行计算方法会在主GPU上占据较多的现存,而其它的GPU显存则只占用了一部分,这样就使得无法再继续增大batchsize了,下图就是这种方式进行计算,整个数据流的路线:

Pytorch中torch.nn.DataParallel负载均衡问题相关推荐

  1. Pytorch中torch.nn.Softmax的dim参数含义

    自己搞了一晚上终于搞明白了,下文说的很透彻,做个记录,方便以后翻阅 Pytorch中torch.nn.Softmax的dim参数含义

  2. pytorch中torch.nn.utils.rnn相关sequence的pad和pack操作

    目录 一.pad_sequence 二.pack_padded_sequence 三.pad_packed_sequence 四.pack_sequence 自然语言处理任务中,模型的输入一般都是变长 ...

  3. pytorch分布式训练(一):torch.nn.DataParallel

      本文介绍最简单的pytorch分布式训练方法:使用torch.nn.DataParallel这个API来实现分布式训练.环境为单机多gpu,不妨假设有4个可用的gpu. 一.构建方法 使用这个AP ...

  4. torch.nn.DataParallel()--多个GPU加速训练

    公司配备多卡的GPU服务器,当我们在上面跑程序的时候,当迭代次数或者epoch足够大的时候,我们通常会使用nn.DataParallel函数来用多个GPU来加速训练.一般我们会在代码中加入以下这句: ...

  5. PyTorch中的nn.Conv1d与nn.Conv2d

    本文主要介绍PyTorch中的nn.Conv1d和nn.Conv2d方法,并给出相应代码示例,加深理解. 一维卷积nn.Conv1d 一般来说,一维卷积nn.Conv1d用于文本数据,只对宽度进行卷积 ...

  6. conv2d的输入_pytorch1.0中torch.nn.Conv2d用法详解

    Conv2d的简单使用 torch 包 nn 中 Conv2d 的用法与 tensorflow 中类似,但不完全一样. 在 torch 中,Conv2d 有几个基本的参数,分别是 in_channel ...

  7. Pytorch中的nn.Unfold()和nn.Fold()详解

    1. nn.Unfold()函数 描述:pytorch中的nn.Unfold()函数,在图像处理领域,经常需要用到卷积操作,但是有时我们只需要在图片上进行滑动的窗口操作,将图片切割成patch,而不需 ...

  8. pytorch中torch.optim的介绍

    pytorch中torch.optim的介绍 这是torch自带的一个优化器,里面自带了求导,更新等操作.开门见山直接讲怎么使用: 常用的引入: import torch.optim as optim ...

  9. pytorch中的nn.Bilinear

    参考:pytorch中的nn.Bilinear的计算原理详解 代码实现 使用numpy实现Bilinear(来自参考资料): print('learn nn.Bilinear') m = nn.Bil ...

  10. PyTorch 中 torch.optim优化器的使用

    一.优化器基本使用方法 建立优化器实例 循环: 清空梯度 向前传播 计算Loss 反向传播 更新参数 示例: from torch import optim input = ..... optimiz ...

最新文章

  1. java鉴权_一个开箱即用的高效认证鉴权框架,专注于restful api的认证鉴权动态保护...
  2. gettype拿不到值_被玩家强行改位置的5个英雄,他上单无解,杀吕布灭铠爹,这都拿去辅助?...
  3. roundrobin来历_Linux系统管理
  4. 计算机中丢失无法开机密码,电脑由于忘记开机密码,现拔出了主板电池,。结果开不了机,怎么办?急 按开机键,一点反应都没...
  5. [Jarvis OJ - PWN]——Test Your Memory
  6. superMap添加marker及连线
  7. 【CodeForces - 789D】Weird journey(思维,图的性质,tricks,有坑)
  8. html5 注册协议弹出层,js制作带有遮罩弹出层实现登录注册表单特效代码分享
  9. Visusl Studio——包含目录、库目录、附加包含目录、附加库目录、附加依赖项之详解
  10. 前端:JS/16/JavaScript简介,lt;script标记,常用的两个客户端输出方法,JS注释,JS变量(声明,命名规则,赋值),变量的数据类型(数值型,字符型)
  11. 长江浪花~朵儿朵尔朵
  12. 利用锁机制解决商品表和库存表并发问题
  13. mysql show timestamp_MySQL中有关TIMESTAMP和DATETIME的总结
  14. 海量高维数据与纬度约减
  15. VScode中SVN插件详细配置【官网】
  16. HFSS天线设计实例_BLE天线优化分析
  17. 2018年美赛E题M奖论文心得分享
  18. macd指标计算机应用,macd是怎么计算的
  19. 今天,腾讯云总裁邱跃鹏表示,云计算发展要迈过三道关……
  20. 瑞幸咖啡 Luckin Coffee

热门文章

  1. linux 小企鹅输入法,Linux基础操作小全及Fcitx(小企鹅五笔输入法)
  2. python下载和安装教程视频_Maya课时:Python的下载与安装视频教程_翼狐网
  3. Format函数详解
  4. 计算机系统组成习题检测及答案
  5. 免费一年VPS,digitalocean加上GitHub学生包
  6. 我国的频段划分,请参考~
  7. 读书笔记(平凡的世界)
  8. R语言length()和lengths()的区别
  9. 搭建ftp服务器根目录文件夹,ftp服务器根目录传文件夹
  10. mac系统如何显示和隐藏文件