pytorch multi-gpu train
记录一下pytorch如何进行单机多卡训练:
官网例程:https://pytorch.org/tutorials/beginner/blitz/data_parallel_tutorial.html
下面以一个例子讲解一下,例如现在总共有8张卡,在第5、6、7三张卡上进行训练;
step 1:可视化需要用到的GPU
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "5 , 6 , 7"
device = torch.device("cuda:0") #注意多卡训练的时候,默认都先将model和data先保存在id:0的卡上(即实际的第5块卡),然后model的参数会复制共享到其他卡上,data也会平分成若干个batch到其他卡上(所以第一块卡上稍微耗费一点显存);
device_ids = [0 , 1 , 2] #注意device_ids必须从0开始,代码中的所有的device id都需要从0开始(这里的0代表第5块卡,1代表第6块卡,类推);
step 2:利用DataParallel对Model类进行封装
model = nn.DataParallel(model , device_ids = device_ids)
model.to(device)
step 3:
data.to(device) #id:0卡上的数据再被平分成若干个batch到其他卡上
注意:晚上还有一些例程,需要对optimizer和loss利用DataParellel进行封装,没有试验过,但上面方法是参考官网例程,并经过实操考验;
pytorch multi-gpu train的更多相关文章
- Pytorch多GPU训练
Pytorch多GPU训练 临近放假, 服务器上的GPU好多空闲, 博主顺便研究了一下如何用多卡同时训练 原理 多卡训练的基本过程 首先把模型加载到一个主设备 把模型只读复制到多个设备 把大的batc ...
- pytorch 多GPU训练总结(DataParallel的使用)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/weixin_40087578/artic ...
- keras使用多GPU并行训练模型 | keras multi gpu training
本文首发于个人博客https://kezunlin.me/post/95370db7/,欢迎阅读最新内容! keras multi gpu training Guide multi_gpu_model ...
- Pytorch指定GPU的方法总结
Pytorch指定GPU的方法 改变系统变量 改变系统环境变量仅使目标显卡,编辑 .bashrc文件,添加系统变量 export CUDA_VISIBLE_DEVICES=0 #这里是要使用的GPU编 ...
- Ubuntu下安装pytorch(GPU版)
我这里主要参考了:https://blog.csdn.net/yimingsilence/article/details/79631567 并根据自己在安装中遇到的情况做了一些改动. 先说明一下我的U ...
- [转] pytorch指定GPU
查过好几次这个命令,总是忘,转一篇mark一下吧 转自:http://www.cnblogs.com/darkknightzh/p/6836568.html PyTorch默认使用从0开始的GPU,如 ...
- Pytorch多GPU并行处理
可以参数2017coco detection 旷视冠军MegDet: MegDet 与 Synchronized BatchNorm PyTorch-Encoding官方文档对CGBN(cross g ...
- pytorch 多GPU处理过程
多GPU的处理机制: 使用多GPU时,pytorch的处理逻辑是: 1.在各个GPU上初始化模型. 2.前向传播时,把batch分配到各个GPU上进行计算. 3.得到的输出在主GPU上进行汇总,计算l ...
- Pytorch 多 GPU 并行处理机制
Pytorch 的多 GPU 处理接口是 torch.nn.DataParallel(module, device_ids),其中 module 参数是所要执行的模型,而 device_ids 则是指 ...
- Pytorch使用GPU
pytorch如何使用GPU在本文中,我将介绍简单如何使用GPU pytorch是一个非常优秀的深度学习的框架,具有速度快,代码简洁,可读性强的优点. 我们使用pytorch做一个简单的回归. 首先准 ...
随机推荐
- sklearn.neural_network.MLPClassifier参数说明
目录 sklearn.neural_network.MLPClassifier sklearn.neural_network.MLPClassifier MLPClassifier(hidden_la ...
- java中内存分配
java程序运行时内存分配详解 一. 基本概念 每运行一个java程序会产生一个java进程,每个java进程可能包含一个或者多个线程,每一个Java进程对应唯一一个JVM实例,每一个JVM实例唯一 ...
- (hdu) 4857 逃生 (拓扑排序+优先队列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4857 Problem Description 糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄 ...
- Redisson 分布式锁
Redisson_百度百科https://baike.baidu.com/item/Redisson/20856570 redission 分布式锁 - 穆穆兔兔 - 博客园https://www.c ...
- Python exe2shellcode,shellcode2exe
exe2shellcode #! /usr/bin/env python # -*- coding: utf-8 -*- import os import sys def payload(files) ...
- 【zabbix教程系列】二、zabbix特点
一.度量收集 从任何设备,系统,应用上收集指标,收集指标的方法有: 多平台zabbix代理 SNMP and IPMI 代理 无代理监控用户服务 自定义方法 计算和聚合 用户端web监控 二.问题发 ...
- C# Note36: .NET unit testing framework
It’s usually good practice to have automated unit tests while developing your code. Doing so helps y ...
- python json数据的转换
1 Python数据转json字符串 import json json_str = json.dumps(py_data) 参数解析: json_str = json.dumps(py_data,s ...
- Linux程序宕掉后如何通过gdb查看出错信息
我们在编写服务端程序的时候,由于多线程并且环境复杂,程序可能在不确定条件的情况下宕掉,还不好重新,这是我们如何获取程序的出错信息,一种方法通过打日志,有时候一些错误日志也不能体现出来,这时就用到我们的 ...
- springboot jpa 复合主键
https://blog.csdn.net/wyc_cs/article/details/9031991 创建一个复合主键类 public class LevelPostMultiKeysClass ...