我尝试了几种解决方案,这些解决方案暗示了当 CUDA GPU 可用并且已安装 CUDA 但
Torch.cuda.is_available()
返回 False
时该怎么做。他们确实提供了帮助,但只是暂时的,这意味着 torch.cuda-is_available()
报告为 True,但一段时间后,它又切换回 False。我使用 CUDA 9.0.176 和 GTX 1080。我该怎么做才能获得永久效果?
我尝试了以下方法:
https://forums.fast.ai/t/torch-cuda-is-available-returns-false/16721/5 https://github.com/pytorch/pytorch/issues/15612
注意:当
torch.cuda.is_available()
工作正常但在某些时候切换到 False
时,我必须重新启动计算机,然后它才能再次工作(一段时间)。
torch.cuda.is_available()
产生False
的原因是pytorch
和cudatoolkit
版本不兼容。
截至 2022 年 6 月,当前版本的 pytorch 与 cudatoolkit=11.3 兼容,而当前 cuda 工具包版本 = 11.7。 来源
解决方案:
卸载 Pytorch 进行全新安装。如果不强制安装,则无法在新版本之上安装旧版本(使用
pip install --upgrade --force-reinstall <package_name>
。
运行
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
来安装pytorch。
从 https://developer.nvidia.com/cuda-11.3.0-download-archive安装 CUDA 11.3 版本。
https://cryptoandcoffee.com/mining-gems/cuda-9-0-install-ubuntu-16-04-apt-get/
使用 pip 安装 PyTorch:
pip install torchvision ( this will install both torch and torchvision )
已重启
现在尝试一下:
~$ python -c 'import torch; print torch.cuda.is_available()'
我也看到这个问题了。原因是 Pytorch 使用的 CUDA 版本与安装的 Nvidia 驱动程序不同步。正如 Joe 的回答所示,解决方案是更新 Nvidia 驱动程序。其他一些需要注意的重要背景信息:
nvidia-smi
检查您的 Nvidia 驱动程序版本。nvidia-smi
时显示的版本。即使您的驱动程序版本与此 CUDA 版本兼容,它也可能与 Pytorch CUDA 版本不兼容。torch.version.cuda
变量来获取 Pytorch CUDA 版本。这是确定所需 Nvidia 驱动程序版本的版本。对我有用的解决方案是使用 pip 而不是前面的 conda 重新安装 pytorch
pip install torch==1.8.1+cu101 torchvision==0.9.1+cu101 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
而不是
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch
(不要介意上面的 Torch 版本差异;这只是为了说明。)
如果您使用的是 Ubuntu 操作系统,您可以点击以下链接。解决了我的问题