环境:

CUDA 11.7 + python 3.6


情况描述

我的CUDA是11.7的,在pytorch官方(https://pytorch.org/)找对应的pytorch,由于CUDA是向下兼容的,我就选择的要求CUDA是11.6的pytorch版本,如下图所示

执行命令:

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116

出现问题

安装完发现torch.cuda.is_available始终返回false,无论重装多少次,都一样。意思就是下载的版本是CPU版本的不是GPU版本的!


原因分析:

经过不断的查资料发现是python版本的问题。
由于之前学习opencv,发现opencv高版本有版权问题,有些东西用不了,所以下载的opencv版本是3.4.1.15版本的。
这个版本的opencv对python版本有要求,所以我下载了3.6版本的python。

打开pytorch离线下载网站(https://download.pytorch.org/whl/torch_stable.html)

其中,cu116表示对应的CUDA为11.6,
cp37表示对应的python版本为3.7

可以看到所有要求CUDA 11.6的pytorch支持的python版本是没有3.6的,所以执行官方给的命令下载下来的pytorch是CPU版本的


解决方案:

选择适合你python版本的pytorch下载即可,
从下图可以看到,适合python3.6版本的pytorch要求的CUDA 为 11.3

再回到pytorch官网,选择CUDA 11.3,如下图

执行命令

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

下载完成后,查看版本是否为GPU的
执行命令

torch.cuda.is_available()

如果返回为True,则说明为GPU版本的,如下图

另:

如果下载太慢,可以查看这篇文章,更改pip的下载源:
https://blog.csdn.net/qq_46037444/article/details/125985680?spm=1001.2014.3001.5501