torch.cuda.is_available函数总返回False问题解决
一、问题描述(使用网上两种解决方法仍不能解决)
在import pytorch后,使用以下函数:
torch.cuda.is_available()
这个函数返回True即为使用了cuda,但是我这里总是返回False。
1. 网上总结的方法一:根据自己cuda版本按照官网提供的安装命令安装pytorch
如果函数返回False,一般是pytorch及其组件与cuda版本不对应导致的,这个可以查看pytorch的官网(https://pytorch.org/get-started/locally/),官网给出了不同cuda版本下安装pytorch的命令,直接复制命令安装对应版本pytorch即可。 cuda版本查看可以通过在命令行使用以下命令查看:
nvcc -V
结果如下图,可以看到我这台电脑使用的cuda是11.3版本的。 于是我按照网上的方法,按照我的cuda版本11.3使用了对应的安装命令:
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
然后再使用torch.cuda.is_available()函数,还是返回False。
2. 网上总结的方法二:去NVIDIA官网安装最新驱动
我去了NVIDIA官网(https://www.nvidia.cn/geforce/drivers/)根据自己的显卡版本,下载了最新的驱动,驱动版本已更新到511.79: 然后再使用torch.cuda.is_available()函数,仍然返回False。
二、问题分析
我用以下命令检查了一下当前环境的安装包:
conda list
发现在列表中有一个cpu版本的pytorch包(问题已解决没来得及截图)。我认为可能是这个包的存在所以导致pytorch一直是使用cpu版本的。 所以我使用以下命令卸载了pytorch:
conda uninstall pytorch
然后我再根据pytorch官网上的提供的命令,安装了cuda11.3对应的pytorch。然后再使用torch.cuda.is_available()函数,终于返回True了啊啊啊啊啊啊啊啊。 所以可能是我先前安装pytorch时没有使用官网建议的命令,然后重新使用官网提供的命令安装时又没有把原先安装的pytorch卸载,所以导致后来安装的pytorch可能版本正确了但默认使用cpu版本的pytorch。
三、解决方法
如果在确认了已使用pytorch官网建议的安装命令安装pytorch了,并且显卡驱动是官网上最新的驱动了,但torch.cuda.is_available函数仍然返回False,那么可以尝试将已安装的pytorch卸载干净,卸载命令:
conda uninstall pytorch
然后再根据官网提供的命令安装对应版本的pytorch。
|