关于pytorch中CUDA的使用问题总结

首先在python中安装对应的pytorch以及cuda版本

  • 查看cuda是否安装成功,gpu是否可用
import torch
from torch import nn
print(torch.duda.is_available()) # true 查看GPU是否可用
print(torch.cuda.device_count()) #GPU数量, 2
torch.cuda.current_device() #当前GPU的索引, 0
torch.cuda.get_device_name(0) #输出GPU名称
  • Tensor(张量)中使用GPU加速,将cpu上的计算转换到GPU上计算
x = torch.tensor([1, 2, 3;4,5,6])
x = x.cuda(0)
  • 报错
  • RuntimeError: Expected object of type torch.cuda.LongTensor but found type torch.LongTensor for argument #3 ‘other’
  • 这个说明模型在cpu上,cpu上的模型不能再GPU上计算,GPU上的模型也不能在CPU上计算
  • 解决办法把张量转换到cpu上 self.nerwork.cpu()或者转换到gpu上 self.cuda()

如何在torch中使用GPU

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 判断是否有GPU
model.to(device)
mytensor = my_tensor.to(device)#调用GPU

多GPU下使用

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 判断是否有GPU
if torch.cuda.device_count() > 1:
  model = nn.DataParallel(model)
model.to(device)
mytensor = my_tensor.to(device)

多GPU模型在单GPU下加载失败的问题

多GPU训练的模型保存和读取的时候用

model = nn.DataParallel(model,device_ids=device_ids)

单GPUdevice_ids=[0],多GPU就更改这个为device_ids=[0,1]

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT__init__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值