当前位置: 首页 > news >正文

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

参考:主页 - PyTorch中文文档

前言:

博主最近搭建网络的时候,需要调用不同的GPU,实现训练的加速,有时间会出现显卡现存分布不均的情况,有时间有的显卡温度特别高。

博客持续更新:

一更:2022.09.01

Multi-GPU layers

class torch.nn.DataParallel(module, device_ids=None, output_device=None, dim=0)[source]

在模块级别上实现数据并行。

此容器通过将mini-batch划分到不同的设备上来实现给定module的并行。在forward过程中,module会在每个设备上都复制一遍,每个副本都会处理部分输入。在backward过程中,副本上的梯度会累加到原始module上。

batch的大小应该大于所使用的GPU的数量。还应当是GPU个数的整数倍,这样划分出来的每一块都会有相同的样本数量。

请看: Use nn.DataParallel instead of multiprocessing

除了Tensor,任何位置参数和关键字参数都可以传到DataParallel中。所有的变量会通过指定的dim来划分(默认值为0)。原始类型将会被广播,但是所有的其它类型都会被浅复制。所以如果在模型的forward过程中写入的话,将会被损坏。

参数说明:

  • module – 要被并行的module
  • device_ids – CUDA设备,默认为所有设备。
  • output_device – 输出设备(默认为device_ids[0])

例子:

 net = torch.nn.DataParallel(model, device_ids=[0, 1, 2])
 output = net(input_var)

相关文章:

  • 写文章的软件-免费写文章的软件
  • vue 不相干的两个页面相互通信方式
  • 流式编程 stream
  • FPGA刷题——数据位宽转换(整数倍非整数倍)
  • 自动控制原理7.2---信号的采样与保持
  • 深挖全媒体多模态数据价值,蜜度亮相2022世界人工智能大会
  • Qt开发及建立工程
  • 四十四、模板层
  • Django-ORM 单表查询
  • 基础数据结构详解
  • 淘宝天猫店铺商品API,店铺商品分类接口代码对接教程
  • 神器 SpringDoc 横空出世!最适合 SpringBoot 的API文档工具来了
  • 剑指offer68-77二分查找、排序
  • vue filters过滤器分别在template和script中使用
  • ssm毕设项目基于Java的城市公交查询系统ac5p2(java+VUE+Mybatis+Maven+Mysql+sprnig)
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • Apache Zeppelin在Apache Trafodion上的可视化
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JavaScript 基础知识 - 入门篇(一)
  • LeetCode18.四数之和 JavaScript
  • MYSQL 的 IF 函数
  • Rancher-k8s加速安装文档
  • Windows Containers 大冒险: 容器网络
  • 官方解决所有 npm 全局安装权限问题
  • 后端_MYSQL
  • 基于组件的设计工作流与界面抽象
  • 微信支付JSAPI,实测!终极方案
  • 在Mac OS X上安装 Ruby运行环境
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (4)logging(日志模块)
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (搬运以学习)flask 上下文的实现
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (六)vue-router+UI组件库
  • (三)mysql_MYSQL(三)
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .cn根服务器被攻击之后
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .Net Memory Profiler的使用举例
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • @RequestBody与@ModelAttribute
  • [ C++ ] STL_list 使用及其模拟实现
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [2018-01-08] Python强化周的第一天
  • [Android]How to use FFmpeg to decode Android f...
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [GXYCTF2019]BabySQli1
  • [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'XXX' 无效
  • [mysql]错误解决之Failed to start MySQL Server
  • [na]wac无线控制器集中转发部署的几种情况
  • [node]Node.js 模块系统
  • [SpringBoot系列]进阶配置