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

t1rydlwq  于 2022-11-23  发布在  其他
关注(0)|答案(4)|浏览(850)

我尝试使用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

xmd2e60i

xmd2e60i1#

您忘记在软件包和版本号之间放置==标志.根据PyTorch installation page

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
8fq7wneg

8fq7wneg2#

好的,经过1周的痛苦,我已经找到了这个解决方案
1-下载NVIDIA驱动程序后:

  • 转到窗口并搜索“NVIDIA控制面板”
  • 然后在左下角应该有“系统信息”
  • 然后寻找“CUDA核心”
  • 我的是384(那年我的笔记本电脑是古董)(NVIDIA GeForce GT 750M)
  • 对于CUDA内核:384(对应于CUDA工具包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环境(或您正在使用的任何环境)中键入:

  • 进口 Torch
  • 打印torch.cuda.is()

如果返回True,则表示作业良好
如果没有:祝你下周好运
希望它对你有帮助,并祝你在与yolor的旅途中好运(我也在学习它)

yeotifhr

yeotifhr3#

如果您正在使用VSCode开发容器,可能忘记将GPU添加到容器中。
通过添加到.devcontainer/devcontainer.json,可以修复此问题

"runArgs": ["--gpus", "all"]
5sxhfpxr

5sxhfpxr4#

只要做这个解决方案,我在这里使用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

相关问题