背景介绍:根据自己要复现的代码的环境要求,我选择了自己的pytorch版本是1.8.1,python==3.7+,再结合自己显卡的cuda版本,比如我是12.4,要选择的cudatoolkit版本应该小于你的cuda,如果找不到合适的,就先去升级你自己显卡的版本,在nVidia升级。

接下来是去pytorch官网找到我需要的pytorch版本的conda命令。

    这里我选择了cudatoolkit=11.3,按照此命令去conda安装,最后conda list 检查发现还是cpu版本。 

     看了很多文章,有的说是用conda里的pip渠道来安装,我试了还是不可以,仍然为cpu版本,这里附上一个链接。好文:作者说全网最稳妥通用的GPU版本pytorch安装教程,写的确实很详细

 但是,但是,重点来了。因为我要去服务器上跑代码,所以我需要在本地配置跟服务器一致的环境,先在自己电脑上调试代码。我机缘巧合地发现,服务器平台在你创建实例时会让你选择环境,他们提供的版本号组合没有torch官方的组合,因此我直接在conda用他们提供的版本号来安装。(记得重新激活一个环境,保持干净的环境,用镜像源安装也不会浪费很多时间。)

pip install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=11.1 -c pytorch -c conda-forge

    这是conda里的命令。 我建议用pip install而非conda install,因为Pip源的版本最全面,服务器提供的版本号一般都在pip源内。

     这里把cudatoolkit版本改成了11.1。安装后为GPU版本的pytorch以及torch vision。

 

     解决办法就是找到一个服务器的官网,到创建实例那里会让你选择代码环境,你根据自己的pytorch版本来选择,它会提供合适的cudatoolkit版本号以及python版本。无需担心不是你期待的cudatoolkit版本以及python版本,cudatoolkit的版本低于cuda版本即可正常运行。而python版本之间通常都是兼容的。这是一个省力的办法,一般都可以,如果不行,请接着看下去。

    原因分析及进阶解决办法

    更新一下,安装成CPU版本的底层原因在于选择的源内没有我们自己的版本组合。如我的torch==1.8.1,cudatoolkit==11.3。

    方法一:pip命令安装,所以先检查pip源存在的版本组合。一般服务器提供的组合在pip都有,所以之前的方法就可以成功。不成功可考虑该方法。

    去pip源找pytorch的版本组合,然后安装pip源有的版本组合。

pytorch的pip源

    方法二:是不用pip源用conda源安装的办法。conda内支持直接查询可安装的库版本。代码如下,会展示conda源可安装的组合

conda search pytorch

输出结果为:可以看到全是cpu版本的


   

     添加清华源的版本到conda的搜索路径。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

    在此显示源:此时发现了GPU版本,根据提供的版本安装即可。可以看到,这里没有我之前的cuda11.3版本,因此会安装从CPU。也可以更换其他镜像源如阿里中科大找pytorch的版本组合。

这时就算用conda命令,conda源也都可以安装需要的GPU版本了。 

conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=11.1 

    总结,服务器提供的组合算是大佬们找到的,试验过合理的版本组合,它们存在于pip源中,所以能直接安装。这算是最简单的方式了。
    希望对大家有帮助。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐