Pytorch CUDA报错,RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR

(多卡环境)在使用torchsummary()进行可视化的时候,代码报错:

RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR

在代码中设置指定GPU,代码仍旧运行不成功

device = torch.device(“cuda:3” if torch.cuda.is_available() else “cpu”)
model = model.to(device)

import torch
from torchsummary import summary
from torchvision.models import vgg11

torch.cuda.set_device(2)

model = vgg11(pretrained=False)
if torch.cuda.is_available():
    # device = torch.device("cuda:3")
    # model = model.to(device)
    model.cuda()
summary(model, (3, 224, 224))

添加了代码torch.cuda.set_device(2)设置当前设备。然后运行成功,其结果如下图所示:
在这里插入图片描述

实际上,官方文档提示不鼓励使用此函数来设置。在大多数情况下,最好使用CUDA_VISIBLE_DEVICES环境变量。

import os
os.environ['CUDA_VISIBLE_DEVICES'] = "2"

import torch
from torchsummary import summary
from torchvision.models import vgg11

model = vgg11(pretrained=False)
if torch.cuda.is_available():
    model.cuda()
summary(model, (3, 224, 224))

注意

  1. CUDA_VISIBLE_DEVICES设置要在模型加载到GPU上之前
  2. 使用os.environ['CUDA_VISIBLE_DEVICES']对可以使用的显卡进行限定之后, 显卡的实际编号和程序看到的编号应该是不一样的, 例如上面我们设定的是os.environ['CUDA_VISIBLE_DEVICES']="0,2", 但是程序看到的显卡编号应该被改成了'0,1' 也就是程序所使用的显卡编号实际上是经过了一次映射之后才会映射到真正的显卡编号上面的。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

烤粽子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值