我尝试使用 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
。
好吧,经过 1 周的痛苦,我找到了这个解决方案
1- 下载 NVIDIA 驱动程序后:
2-(可选)下载 Anaconda
3-为您的系统安装正确的 CUDA 工具包后
4-完成所有这些之后,在您的 Anaconda 环境(或您正在使用的任何环境)中,键入:
如果返回 True 那么干得好
如果没有:祝你下周好运
希望它对你有帮助,祝你在 yolor 的旅程中好运(我也在学习)
您忘记在软件包和版本号之间添加
==
符号。根据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
如果您正在使用 VSCode 开发容器,可能您忘记将 GPU 添加到容器中。
这可以通过添加到
.devcontainer/devcontainer.json
来修复
"runArgs": ["--gpus", "all"]
对于 CUDA 12.1: 卸载 torch、torchvision 和 torchaudio(如果已安装),然后:
pip3 安装 torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
就做这个解决方案吧,我这里使用的是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