Pytorch - GPU ID 指定 pytorch gpu 指定

PyTorch 关于多 GPUs 时的指定使用特定 GPU.

PyTorch 中的 Tensor,Variable 和 nn.Module(如 loss,layer和容器 Sequential) 等可以分别使用 CPU 和 GPU 版本,均是采用 .cuda() 方法.

如:

import torch

a = torch.Tensor(2, 3)
if torch.cuda.is_available(): # 判断是否支持 CUDA
    a.is_cuda  # False
    a = a.cuda()  # 放到 GPU 上
    a.is_cuda  # True
    a.get_device()  # 默认使用 GPU-0

采用 .cuda() 方法默认使用的是 GPU-0,等价于 .cuda(0).

1. GPU ID 指定

当需要指定使用多张 GPUs 中的特定 GPU 时,可以采用 .cuda(1) 方法,但需要对大量的 Tensor、Variable等进行修改.

参考网络上的方法,替代方案主要有:

[1] - 使用 torch.cuda.set_device(id) 函数

import torch
torch.cuda.set_device(id)  # id=0, 1, 2 等

[2] - 采用类似 Tensorflow 指定 GPU 的方式,使用 CUDA_VISIBLE_DEVICES

# 使用终端命令行运行的 GPU 指定方式
CUDA_VISIBLE_DEVICES=1 python python_script.py
# 在 python 脚本中的 GPU 指定方式
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "2"

参考:PyTorch中使用指定的GPU

2. torch.device

如:

import torch

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
a_cpu = torch.Tensor(2, 3)
# tensor([[0.0000e+00, 0.0000e+00, 1.2771e-40],
#         [9.0079e+15, 1.6751e-37, 2.9775e-41]])
a_cpu.device
# device(type=‘cpu‘)

a_cuda = a.to(device)
# tensor([[-2.1800e-01,  4.5737e-41,  2.3351e-37],
#         [ 0.0000e+00,  4.4842e-44,  0.0000e+00]], device=‘cuda:0‘)
a_cuda.device
# device(type=‘cuda‘, index=0)

# 查看当前 gpu id
curr_gpuid = torch.cuda.current_device()
# 0



原文地址:https://www.cnblogs.com/jfdwd/p/11434332.html

时间: 2024-09-29 19:28:18

Pytorch - GPU ID 指定 pytorch gpu 指定的相关文章

pytorch中设定使用指定的GPU

转自:http://www.cnblogs.com/darkknightzh/p/6836568.html PyTorch默认使用从0开始的GPU,如果GPU0正在运行程序,需要指定其他GPU. 有如下两种方法来指定需要使用的GPU. 1. 类似tensorflow指定GPU的方式,使用CUDA_VISIBLE_DEVICES. 1.1 直接终端中设定: CUDA_VISIBLE_DEVICES=1 python main.py 1.2 python代码中设定: import os os.env

Linux服务器配置GPU版本的pytorch Torchvision TensorFlow

最近在Linux服务器上配置项目,项目需要使用GPU版本的pytorch和TensorFlow,而且该项目内会同时使用TensorFlow的GPU和CPU. 在服务器上装环境,如果重新开始,就需要下载很多依赖包,而且如果直接在系统上安装包,可能会和服务器上的其他包发生冲突,因此使用Anaconda创建虚拟环境来管理项目的依赖包.Anaconda的安装可以去清华大学的镜像下载,速度比较快,选择对应的版本就可以了 https://mirrors.tuna.tsinghua.edu.cn/anacon

使用云监控实现GPU云服务器的GPU监控和报警(下)-云监控插件监控

摘要: 目录 使用云监控实现GPU云服务器的GPU监控和报警(上) - 自定义监控 使用云监控实现GPU云服务器的GPU监控和报警(下)-云监控插件监控 1 背景 上一篇文章我们介绍了如何使用阿里云云监控服务提供的自定义监控功能,利用自定义监控提供的API或者SDK,通过自定义脚本可以将GP. 1 背景上一篇文章我们介绍了如何使用阿里云云监控服务提供的自定义监控功能,利用自定义监控提供的API或者SDK,通过自定义脚本可以将GPU云主机内采集的GPU数据上报,在云监控控制台上添加相应的GPU监控

【GPU编解码】GPU硬解码---DXVA

[GPU编解码]GPU硬解码---DXVA 前面介绍利用NVIDIA公司提供的CUVID库进行视频硬解码,下面将介绍利用DXVA进行硬解码. 一.DXVA介绍 DXVA是微软公司专门定制的视频加速规范,是一种接口规范.DXVA规范制定硬件加速解码可分四级:VLD,控制BitStream:IDCT,反余弦变换:Mocomp,运动补偿,Pixel Prediction:PostProc,显示后处理.其中,VLD加速等级最高,所以其包含IDCT.MoCoopm和PostProc:IDCT加速次之,包含

sql中从指定位置截取指定长度字符串

1. 字符串函数应用 --从指定索引截取指定长度的字符串 SELECT substring('abcdefg',2,5) --获取字符串中指定字符的索引(从1开始) select charindex(',','ab,cdefg') --实际应用中的语句 select proId,color,substring(FacePath,0,charindex(',',FacePath)) as FacePath from proselect where id=1000000 2. 日期函数应用 --获取

mysql5.7基础 向指定数据库的指定表中插入符合要求的数据

镇场文:       学儒家经世致用,行佛家普度众生,修道家全生保真,悟易理象数通变.以科技光耀善法,成就一良心博客.______________________________________________________________________________________________________ Operating System:UbuntuKylin 16.04 LTS 64bitmysql: Ver 14.14 Distrib 5.7.17, for Linux (

hdu4417 树状数组(求指定区间比指定数小的数的个数)

http://acm.hdu.edu.cn/showproblem.php?pid=4417 Problem Description Mario is world-famous plumber. His "burly" figure and amazing jumping ability reminded in our memory. Now the poor princess is in trouble again and Mario needs to save his lover.

Linux创建指定用户特定指定目录权限

指定用户特定指定目录权限 需要注意要指定好文件夹的权限,不然会导致nginx不能访问,最好是在root下建立目录,然后 # useradd -d /usr/www -m tempuser# passwd tempuser   回车输入密码 注意一定要带用户名,不然就是修改root!!!# chown tempuser -R /usr/www 这样不能上传到其他目录,但是可以下载可以看,只读. # chmod 755 /usr/www  如果要给特定 但是需要注意 在linux shell中不显示

向指定服务器的指定端口发送UDP包

//功能:读取文件文件,向指定服务器的指定端口发送UDP包,//2015.9.26 OK #include <stdio.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <netdb.h>#include <string.h> //#define SERVER_PORT 8000int SERVER_PORT = 8000;