pytorch 指定gpu训练与多gpu并行训练示例
一. 指定一个gpu训练的两种方法:
1.代码中指定
import torch torch.cuda.set_device(id)
2.终端中指定
CUDA_VISIBLE_DEVICES=1 python 你的程序
其中id就是你的gpu编号
二. 多gpu并行训练:
torch.nn.DataParallel(module, device_ids=None, output_device=None, dim=0)
该函数实现了在module级别上的数据并行使用,注意batch size要大于GPU的数量。
参数 :
module:需要多GPU训练的网络模型
device_ids: GPU的编号(默认全部GPU,或[0,1] ,[0,1,2])
output_device:(默认是device_ids[0])
dim:tensors被分散的维度,默认是0
在保存模型时要注意要加上"module",例如:
network.module.state_dict()
以上这篇pytorch 指定gpu训练与多gpu并行训练示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
pytorch使用指定GPU训练的实例
本文适合多GPU的机器,并且每个用户需要单独使用GPU训练. 虽然pytorch提供了指定gpu的几种方式,但是使用不当的话会遇到out of memory的问题,主要是因为pytorch会在第0块gpu上初始化,并且会占用一定空间的显存.这种情况下,经常会出现指定的gpu明明是空闲的,但是因为第0块gpu被占满而无法运行,一直报out of memory错误. 解决方案如下: 指定环境变量,屏蔽第0块gpu CUDA_VISIBLE_DEVICES = 1 main.py 这句话表示只有第1块
-
pytorch多GPU并行运算的实现
Pytorch多GPU运行 设置可用GPU环境变量.例如,使用0号和1号GPU' os.environ["CUDA_VISIBLE_DEVICES"] = '0,1' 设置模型参数放置到多个GPU上.在pytorch1.0之后的版本中,多GPU运行变得十分方便,先将模型的参数设置并行 if torch.cuda.device_count() > 1: print("Let's use", torch.cuda.device_count(), "GPU
-
解决pytorch GPU 计算过程中出现内存耗尽的问题
Pytorch GPU运算过程中会出现:"cuda runtime error(2): out of memory"这样的错误.通常,这种错误是由于在循环中使用全局变量当做累加器,且累加梯度信息的缘故,用官方的说法就是:"accumulate history across your training loop".在默认情况下,开启梯度计算的Tensor变量是会在GPU保持他的历史数据的,所以在编程或者调试过程中应该尽力避免在循环中累加梯度信息. 下面举个栗子: 上代
-
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
如下所示: device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")#第一行代码 model.to(device)#第二行代码 首先是上面两行代码放在读取数据之前. mytensor = my_tensor.to(device)#第三行代码 然后是第三行代码.这句代码的意思是将所有最开始读取数据时的tersor变量copy一份到device所指定的GPU上去,之后的运算都在GPU上
-
将Pytorch模型从CPU转换成GPU的实现方法
最近将Pytorch程序迁移到GPU上去的一些工作和思考 环境:Ubuntu 16.04.3 Python版本:3.5.2 Pytorch版本:0.4.0 0. 序言 大家知道,在深度学习中使用GPU来对模型进行训练是可以通过并行化其计算来提高运行效率,这里就不多谈了. 最近申请到了实验室的服务器来跑程序,成功将我简陋的程序改成了"高大上"GPU版本. 看到网上总体来说少了很多介绍,这里决定将我的一些思考和工作记录下来. 1. 如何进行迁移 由于我使用的是Pytorch写的模型,网上给
-
关于pytorch多GPU训练实例与性能对比分析
以下实验是我在百度公司实习的时候做的,记录下来留个小经验. 多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:
-
在pytorch中为Module和Tensor指定GPU的例子
pytorch指定GPU 在用pytorch写CNN的时候,发现一运行程序就卡住,然后cpu占用率100%,nvidia-smi 查看显卡发现并没有使用GPU.所以考虑将模型和输入数据及标签指定到gpu上. pytorch中的Tensor和Module可以指定gpu运行,并且可以指定在哪一块gpu上运行,方法非常简单,就是直接调用Tensor类和Module类中的 .cuda() 方法. import torch from PIL import Image import torch.nn as
-
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
听说pytorch使用比TensorFlow简单,加之pytorch现已支持windows,所以今天装了pytorch玩玩,第一件事还是写了个简单的CNN在MNIST上实验,初步体验的确比TensorFlow方便. 参考代码(在莫烦python的教程代码基础上修改)如下: import torch import torch.nn as nn from torch.autograd import Variable import torch.utils.data as Data import tor
-
pytorch 指定gpu训练与多gpu并行训练示例
一. 指定一个gpu训练的两种方法: 1.代码中指定 import torch torch.cuda.set_device(id) 2.终端中指定 CUDA_VISIBLE_DEVICES=1 python 你的程序 其中id就是你的gpu编号 二. 多gpu并行训练: torch.nn.DataParallel(module, device_ids=None, output_device=None, dim=0) 该函数实现了在module级别上的数据并行使用,注意batch size要大于G
-
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
分类网络 import torch import torch.nn.functional as F from torch.autograd import Variable import matplotlib.pyplot as plt # 构造数据 n_data = torch.ones(100, 2) x0 = torch.normal(3*n_data, 1) x1 = torch.normal(-3*n_data, 1) # 标记为y0=0,y1=1两类标签 y0 = torch.zero
-
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
1, 创建pytorch 的Tensor张量: torch.rand((3,224,224)) #创建随机值的三维张量,大小为(3,224,224) torch.Tensor([3,2]) #创建张量,[3,2] 2, cpu上的tensor和GPU即pytorch创建的tensor的相互转化 b = a.cpu() # GPU → CPU a = b.cuda() #CPU → GPU 3, tensor和numpy的转化 b = a.numpy() # tensor转化为 numpy数组 a
-
pytorch算子torch.arange在CPU GPU NPU中支持数据类型格式
目录 正文 一. torch.arange() 和 torch.range() 的用法 二. torch.arange 支持的数据类型格式 正文 CPU(Central Processing Unit):中央处理器 GPU(Graphics Processing Unit):图形处理器 NPU(Neural Network Processing Unit):神经网络处理器,是基于神经网络算法与加速的新型处理器总称. 一. torch.arange() 和 torch.range() 的用法 py
-
keras 指定程序在某块卡上训练实例
场景:某台机器上有三块卡,想同时开三个程序,放到三块卡上去训练. 策略:CUDA_VISIBLE_DEVICES=1 python train.py就可以指定程序在某块卡上训练. 补充知识:keras指定GPU及显存使用量 指定GPU import os os.environ["CUDA_VISIBLE_DEVICES"] = "0" 指定GPU和显存使用量 import os from keras.backend.tensorflow_backend import
-
PyTorch详解经典网络种含并行连结的网络GoogLeNet实现流程
目录 1. Inception块 2. 构造 GoogLeNet 网络 3. FashionMNIST训练测试 含并行连结的网络 GoogLeNet 在GoogleNet出现值前,流行的网络结构使用的卷积核从1×1到11×11,卷积核的选择并没有太多的原因.GoogLeNet的提出,说明有时候使用多个不同大小的卷积核组合是有利的. import torch from torch import nn from torch.nn import functional as F 1. Inception
-
Pytorch保存模型用于测试和用于继续训练的区别详解
保存模型 保存模型仅仅是为了测试的时候,只需要 torch.save(model.state_dict, path) path 为保存的路径 但是有时候模型及数据太多,难以一次性训练完的时候,而且用的还是 Adam优化器的时候, 一定要保存好训练的优化器参数以及epoch state = { 'model': model.state_dict(), 'optimizer':optimizer.state_dict(), 'epoch': epoch } torch.save(state, pat
-
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
禁用GPU设置 # 在import tensorflow之前 import os os.environ['CUDA_VISIBLE_DEVICES'] = '-1' CPU与GPU对比 显卡:GTX 1066 CPU GPU 简单测试:GPU比CPU快5秒 补充知识:tensorflow使用CPU可以跑(运行),但是使用GPU却不能用的情况 在跑的时候可以让加些选项: with tf.Session(config=tf.ConfigProto(allow_soft_placement=True,
随机推荐
- 利用jQuery设计一个简单的web音乐播放器的实例分享
- 二行代码解决全部网页木马
- 无法启动Apache的问题解决方法
- IOS实现圆形图片效果的两种方法
- 删除table表格行的实例讲解
- mysql免安装没有任何root权限
- C/S和B/S两种架构区别与优缺点分析
- ajax调用中ie缓存问题解决方法
- JS实现鼠标滑过链接改变网页背景颜色的方法
- jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
- C#中方括号[]的语法及作用介绍
- 获取SQL Server数据库元数据的几种方法
- mssql查找备注(text,ntext)类型字段为空的方法
- php下批量挂马和批量清马代码
- JavaScript代码应该放在HTML代码哪个位置比较好?
- Linux centos7环境下Nginx安装教程
- Android 中TextView的使用imageview被压缩问题解决办法
- Java开发者就业需要掌握的9大专业技能
- Android App中使用Pull解析XML格式数据的使用示例
- C#向图片添加水印的两种不同场景与解决方法