PyTorch device与cuda.device用法介绍

目录
  • 1 查看当前的device
  • 2 cpu设备可以使用“cpu:0”来指定
  • 3 gpu设备可以使用“cuda:0”来指定
  • 4 查询CPU和GPU设备数量
  • 5 从CPU设备上转换到GPU设备
    • 5.1 torch.Tensor方法默认使用CPU设备
    • 5.2 使用to方法将cpu的Tensor转换到GPU设备上
    • 5.3 使用.cuda方法将cpu的Tensor转换到GPU设备上

1 查看当前的device

输入情况:

import torch
print("Default Device : {}".format(torch.Tensor([4, 5, 6]).device))

输出情况:

Default Device : cpu

2 cpu设备可以使用“cpu:0”来指定

输入情况

device = torch.Tensor([1, 2, 3], device="cpu:0").device
print("Device Type: {}".format(device))

输出情况

Device Type: cpu

3 gpu设备可以使用“cuda:0”来指定

输入情况

gpu = torch.device("cuda:0")
print("GPU Device:【{}:{}】".format(gpu.type, gpu.index))

输出情况

GPU Device:【cuda:0】

4 查询CPU和GPU设备数量

输入情况

print("Total GPU Count :{}".format(torch.cuda.device_count()))
print("Total CPU Count :{}".format(torch.cuda.os.cpu_count()))

输出情况

Total GPU Count :1
Total CPU Count :8

5 从CPU设备上转换到GPU设备

5.1 torch.Tensor方法默认使用CPU设备

输入情况

data = torch.Tensor([[1, 4, 7], [3, 6, 9], [2, 5, 8]])
print(data.shape)

输出情况

torch.Size([3, 3])

5.2 使用to方法将cpu的Tensor转换到GPU设备上

输入情况:

data_gpu = data.to(torch.device("cuda:0"))
print(data_gpu.device)

输出情况:

cuda:0

5.3 使用.cuda方法将cpu的Tensor转换到GPU设备上

输入情况:

data_gpu2 = data.cuda(torch.device("cuda:0"))
# 如果只有一块gpu的话  直接写成这样:data_gpu2 = data.cuda()
print(data_gpu2.device)

输出情况:

cuda:0

到此这篇关于PyTorch device与cuda.device用法的文章就介绍到这了,更多相关PyTorch device使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决pytorch下只打印tensor的数值不打印出device等信息的问题

    torch.Tensor类型的数据loss和acc打印时 如果写成以下写法 print('batch_loss: '+str(loss.data)+'batch acc: '+str(acc.data)) 则不仅会打印出loss和acc的值,还会打印出device信息和 tensor字样,如下: 如果仅想打印出数值,使得打印出的信息更加简洁 则要用以下写法 print('batch_loss: {:.3f} batch acc: {:.3f}'.format(loss.data, acc.dat

  • pytorch中的model=model.to(device)使用说明

    这代表将模型加载到指定设备上. 其中,device=torch.device("cpu")代表的使用cpu,而device=torch.device("cuda")则代表的使用GPU. 当我们指定了设备之后,就需要将模型加载到相应设备中,此时需要使用model=model.to(device),将模型加载到相应的设备中. 将由GPU保存的模型加载到CPU上. 将torch.load()函数中的map_location参数设置为torch.device('cpu')

  • pytorch中.to(device) 和.cuda()的区别说明

    原理 .to(device) 可以指定CPU 或者GPU device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 单GPU或者CPU model.to(device) #如果是多GPU if torch.cuda.device_count() > 1: model = nn.DataParallel(model,device_ids=[0,1,2]) model.to(

  • PyTorch device与cuda.device用法介绍

    目录 1 查看当前的device 2 cpu设备可以使用“cpu:0”来指定 3 gpu设备可以使用“cuda:0”来指定 4 查询CPU和GPU设备数量 5 从CPU设备上转换到GPU设备 5.1 torch.Tensor方法默认使用CPU设备 5.2 使用to方法将cpu的Tensor转换到GPU设备上 5.3 使用.cuda方法将cpu的Tensor转换到GPU设备上 1 查看当前的device 输入情况: import torch print("Default Device : {}&q

  • PyTorch device与cuda.device用法

    1 查看当前的device 输入情况: import torch print("Default Device : {}".format(torch.Tensor([4, 5, 6]).device)) 输出情况: Default Device : cpu 2 cpu设备可以使用“cpu:0”来指定 输入情况 device = torch.Tensor([1, 2, 3], device="cpu:0").device print("Device Type:

  • pytorch中Tensor.to(device)和model.to(device)的区别及说明

    目录 Tensor.to(device)和model.to(device)的区别 区别所在 举例 pytorch学习笔记--to(device)用法 这段代码到底有什么用呢? 为什么要在GPU上做运算呢? .cuda()和.to(device)的效果一样吗?为什么后者更好? 如果你有多个GPU Tensor.to(device)和model.to(device)的区别 区别所在 使用GPU训练的时候,需要将Module对象和Tensor类型的数据送入到device.通常会使用 to.(devic

  • pytorch torchvision.ImageFolder的用法介绍

    torchvision.datasets Datasets 拥有以下API: __getitem__ __len__ Datasets都是 torch.utils.data.Dataset的子类,所以,他们也可以通过torch.utils.data.DataLoader使用多线程(python的多进程). 举例说明: torch.utils.data.DataLoader(coco_cap, batch_size=args.batchSize, shuffle=True, num_workers

  • pytorch中的 .view()函数的用法介绍

    目录 一.普通用法(手动调整size) 二.特殊用法:参数-1(自动调整size) 一.普通用法 (手动调整size) view()相当于reshape.resize,重新调整Tensor的形状. import torch a1 = torch.arange(0,16) print(a1) # tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15]) a2 = a1.view(8, 2) a3 = a1.vi

  • PyTorch中的CUDA的操作方法

    目录 前言 一.常见CPU和GPU操作命令 二.CPU和GPU设备上的Tensor 1.Tensor从CPU拷贝到GPU上 2.直接在GPU上创建Tensor 3.CUDA Streams 三.固定缓冲区 四.自动设备感知 1.适配CPU和GPU设备 2.模型迁移到GPU设备 前言 CUDA(Compute Unified Device Architecture)是NVIDIA推出的异构计算平台,PyTorch中有专门的模块torch.cuda来设置和运行CUDA相关操作.本地安装环境为Wind

  • pytorch判断是否cuda 判断变量类型方式

    我就废话不多说了,那就直接看代码吧~ inputs = Variable(torch.randn(2,2)) inputs.is_cuda # will return false inputs = Variable(torch.randn(2,2).cuda()) inputs.is_cuda # returns true 判断: torch.is_tensor() #如果是pytorch的tensor类型返回true torch.is_storage() # 如果是pytorch的storag

  • 详解pytorch中squeeze()和unsqueeze()函数介绍

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的数去掉第一个维数为一的维度之后就变成(3)行.squeeze(a)就是将a中所有为1的维度删掉.不为1的维度没有影响.a.squeeze(N) 就是去掉a中指定的维数为一的维度.还有一种形式就是b=torch.squeeze(a,N) a中去掉指定的定的维数为一的维度. 再看torch.unsque

  • pytorch hook 钩子函数的用法

    钩子编程(hooking),也称作“挂钩”,是计算机程序设计术语,指通过拦截软件模块间的函数调用.消息传递.事件传递来修改或扩展操作系统.应用程序或其他软件组件的行为的各种技术.处理被拦截的函数调用.事件.消息的代码,被称为钩子(hook). Hook 是 PyTorch 中一个十分有用的特性.利用它,我们可以不必改变网络输入输出的结构,方便地获取.改变网络中间层变量的值和梯度.这个功能被广泛用于可视化神经网络中间层的 feature.gradient,从而诊断神经网络中可能出现的问题,分析网络

  • PyTorch中permute的基本用法示例

    目录 permute(dims) 附:permute(多维数组,[维数的组合]) 总结 permute(dims) 将tensor的维度换位. 参数:参数是一系列的整数,代表原来张量的维度.比如三维就有0,1,2这些dimension. 例: import torch import numpy    as np a=np.array([[[1,2,3],[4,5,6]]]) unpermuted=torch.tensor(a) print(unpermuted.size())  #  -->  

随机推荐