如何修复“断言错误:CUDA 不可用,请求的设备 0 无效”

问题描述 投票:0回答:5

我尝试使用 GPU 运行 YOLOR 模型,但不断收到错误:

Traceback (most recent call last):
  File "D:\yolor\detect.py", line 198, in <module>
    detect()
  File "D:\yolor\detect.py", line 41, in detect
    device = select_device(opt.device)
  File "D:\yolor\utils\torch_utils.py", line 47, in select_device
    assert torch.cuda.is_available(), 'CUDA unavailable, invalid device %s requested' % device  # check availablity
AssertionError: CUDA unavailable, invalid device 0 requested

当我尝试检查 CUDA 是否可用时:

python3
>>import torch
>>print(torch.cuda.is_available())

我得到了

False
,这解释了问题。我尝试运行命令

py -m pip install torch1.9.0+cu111 torchvision0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

我收到错误:

ERROR: Invalid requirement: 'torch1.9.0+cu111'

跑步

nvcc --version
,我得到:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Mon_May__3_19:41:42_Pacific_Daylight_Time_2021
Cuda compilation tools, release 11.3, V11.3.109
Build cuda_11.3.r11.3/compiler.29920130_0

因此,我不太确定问题是什么,或者如何解决它。

编辑:正如@Ivan指出的,我添加了==符号,但在检查CUDA是否可用时仍然得到

False

python deep-learning pytorch
5个回答
6
投票

好吧,经过 1 周的痛苦,我找到了这个解决方案

1- 下载 NVIDIA 驱动程序后:

  • 转到您的窗口并搜索“NVIDIA 控制面板”
  • 然后左下角应该有“系统信息”
  • 然后寻找“CUDA Cores”
  • 我的是384(我的笔记本电脑是古董那年)(NVIDIA GeForce GT 750M)
  • 对于 CUDA 核心:384(对应于 CUDA Toolkit 9.0)
  • 对于 CUDA 核心:387(对应于 CUDA 工具包 9.1)
  • 对于其他 CUDA 核心,您需要自己做更多研究,因为老实说,我不知道在哪里可以找到它(如果您对我在哪里找到上面的感到好奇,它位于第二条评论“https:// github.com/pytorch/pytorch/issues/4546"

2-(可选)下载 Anaconda

  • 这是我使用的系统,选择是你的
  • 如果您正在使用 Anaconda 并且已经安装和卸载到 解决这个问题。我建议你干净卸载环境 因为就我而言,我的文件由于重复安装而崩溃 卸载
  • 这是向您展示如何操作的链接 “https://www.youtube.com/watch?v=dcvdOuvWI-Q&t=107s”

3-为您的系统安装正确的 CUDA 工具包后

  • 转到“https://pytorch.org”
  • 输入您的系统详细信息并安装适合您的 PyTorch 系统
  • (可选)如果您也使用 Tensorflow,请转到此处并安装 适合您的 CUDA 的版本

4-完成所有这些之后,在您的 Anaconda 环境(或您正在使用的任何环境)中,键入:

  • 进口火炬
  • 打印(火炬.cuda.is_available())

如果返回 True 那么干得好

如果没有:祝你下周好运

希望它对你有帮助,祝你在 yolor 的旅程中好运(我也在学习)


2
投票

您忘记在软件包和版本号之间添加

==
符号。根据PyTorch安装页面

py -m pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

0
投票

如果您正在使用 VSCode 开发容器,可能您忘记将 GPU 添加到容器中。

这可以通过添加到

.devcontainer/devcontainer.json

来修复
"runArgs": ["--gpus", "all"]

0
投票

对于 CUDA 12.1: 卸载 torch、torchvision 和 torchaudio(如果已安装),然后:

pip3 安装 torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121


-1
投票

就做这个解决方案吧,我这里使用的是TensorFlow 2.5.0,改成适合你的...

!wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/libcudnn8_8.1.0.77-1+cuda11.2_amd64.deb
!dpkg -i libcudnn8_8.1.0.77-1+cuda11.2_amd64.deb
!ls -l /usr/lib/x86_64-linux-gnu/libcudnn.so.*
!pip install --upgrade tensorflow==2.5.0
© www.soinside.com 2019 - 2024. All rights reserved.