环境

我的电脑配置如下:

CPUGPU系统
I7-11800HRTX3050TIWindows10家庭中文版

当我们需要运行机器学习相关的模块的时候,PyTorch一定是一个必不可少的选择。一些新购入30系显卡的朋友可能注意到,pytorch目前stable所提供的CUDA版本是11.3,但截止发布日,NVIDIA发布的最新驱动,已经更新到了CUDA11.6版本。

安装

首先查看版本信息

#在cmd下输入下列代码查看GPU信息
nvidia-smi
显示出的是我的驱动版本,右上角可以明显看到CUDA Version:11.6

我们来到官网,首页即是所需版本的安装命令。

https://pytorch.org/get-started/previous-versions/

我们可以看到,在所需版本(PyTorch v1.9.0)下,只有最高11.3版本

这时,我们本能反应是去寻找对应的版本,可翻遍了全网,也没有找到11.6版本(真的很新),于是我开始暴力解决,即:直接手动修改命令:

#官网提供的安装命令
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.3 -c pytorch -c conda-forge

#我们魔改的
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.6 -c pytorch -c conda-forge

明显可以看出,我们直接把“cudatoolkit”版本修改成了11.6,回车运行,发现安装过程中并没有任何报错,一切正常进行。可由于命令行翻动太快,我并没有看清楚真正安装的是否是我所输入的版本。安装完成之后,执行以下代码检查是否安装正确:

C:\Users\dingl>conda activate python39  #激活conda环境,后面跟你的虚拟环境名称

(python39) C:\Users\dingl>python
Python 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.__version__)
1.11.0                             #查看安装pytorch版本,弹出版本及证明安装正确
>>> torch.cuda.is_available()      #查看cuda是否可用
False                              #弹了Fasle不可用

程序给我们返回了False,也就是说,并没有完全兼容。

解决

在经过了一番周折之后,偶然情况下,我直接尝试了最新版本的torch,继续上述步骤安装,cuda依然是11.3版本。

正常安装后,再次运行刚刚的检测代码,torch成功给我们返回了True,也就是说,PyTorch已经正确兼容了所有组件。

这里需要注意,我们最初希望的是在PyTorch 1.9.X下兼容,可是现在强行改成更新的1.11.0后,仍不确定是否存在版本差异所产生的bug,具体更新详情,可以参见官网文档https://pytorch.apachecn.org/#/