在Linux服务器安装pip不支持的老版本pytorch、cudatoolkit、torch-scatter、torch-sparse等等
最近在复现一些使用老版本python、pytorch的深度学习代码时遇到了一些问题,尝试使用时,发现pip已经不支持安装如此老的版本,或者即使在安装后也无法使用GPUcuda。
背景
最近在复现一些使用老版本python、pytorch的深度学习代码时遇到了一些问题,尝试使用pip install pytorch==$指定版本$时,发现pip已经不支持安装如此老的版本,或者即使在安装后也无法使用GPUcuda
安装方法
首先需要准备一个conda,conda/miniconda都可,创建我们所需要python版本的虚拟环境
conda create -n myenv python=3.7
在这里我需要的python版本是3.7,myenv可以更改为你想取的任何虚拟环境名称
接下来我们进入刚刚创建的环境
conda activate myenv
接下来是配置所需要的pytorch、cuDNN、cudatoolkit
首先我们先使用conda search搜索可用的pytorch版本
conda search pytorch -c pytorch
接下来会出现搜索结果,如下所示
# Name Version Build Channel
pytorch 0.2.0 py27cuda7.5cudnn5.1_0 pkgs/main
pytorch 0.2.0 py27cuda7.5cudnn6.0_0 pkgs/main
pytorch 0.2.0 py27cuda8.0cudnn5.1_0 pkgs/main
pytorch 0.2.0 py27cuda8.0cudnn6.0_0 pkgs/main
pytorch 0.2.0 py35cuda7.5cudnn5.1_0 pkgs/main
pytorch 0.2.0 py35cuda7.5cudnn6.0_0 pkgs/main
pytorch 0.2.0 py35cuda8.0cudnn5.1_0 pkgs/main
pytorch 0.2.0 py35cuda8.0cudnn6.0_0 pkgs/main
pytorch 0.2.0 py36cuda7.5cudnn5.1_0 pkgs/main
pytorch 0.2.0 py36cuda7.5cudnn6.0_0 pkgs/main
pytorch 0.2.0 py36cuda8.0cudnn5.1_0 pkgs/main
pytorch 0.2.0 py36cuda8.0cudnn6.0_0 pkgs/main
pytorch 0.3.0 py27cuda7.5cudnn6.0_0 pkgs/main
pytorch 0.3.0 py27cuda8.0cudnn6.0_0 pkgs/main
pytorch 0.3.0 py27cuda8.0cudnn7.0_0 pkgs/main
pytorch 0.3.0 py35cuda7.5cudnn6.0_0 pkgs/main
pytorch 0.3.0 py35cuda8.0cudnn6.0_0 pkgs/main
pytorch 0.3.0 py35cuda8.0cudnn7.0_0 pkgs/main
pytorch 0.3.0 py36cuda7.5cudnn6.0_0 pkgs/main
pytorch 0.3.0 py36cuda8.0cudnn6.0_0 pkgs/main
pytorch 0.3.0 py36cuda8.0cudnn7.0_0 pkgs/main
pytorch 0.3.1 py27had95abb_0 pkgs/main
pytorch 0.3.1 py27hfbe7015_1 pkgs/main
pytorch 0.3.1 py35had95abb_0 pkgs/main
pytorch 0.3.1 py35hfbe7015_1 pkgs/main
pytorch 0.3.1 py36had95abb_0 pkgs/main
pytorch 0.3.1 py36hfbe7015_1 pkgs/main
pytorch 0.4.0 py27hd73e86b_0 pkgs/main
pytorch 0.4.0 py27hdf912b8_0 pkgs/main
pytorch 0.4.0 py35hd73e86b_0 pkgs/main
pytorch 0.4.0 py35hdf912b8_0 pkgs/main
pytorch 0.4.0 py36hd73e86b_0 pkgs/main
pytorch 0.4.0 py36hdf912b8_0 pkgs/main
pytorch 0.4.1 py27ha74772b_0 pkgs/main
pytorch 0.4.1 py35ha74772b_0 pkgs/main
pytorch 0.4.1 py36ha74772b_0 pkgs/main
pytorch 0.4.1 py37ha74772b_0 pkgs/main
pytorch 1.0.1 cuda100py27he554f03_0 pkgs/main
pytorch 1.0.1 cuda100py36he554f03_0 pkgs/main
pytorch 1.0.1 cuda100py37he554f03_0 pkgs/main
pytorch 1.0.1 cuda80py27ha8650f8_0 pkgs/main
pytorch 1.0.1 cuda80py36ha8650f8_0 pkgs/main
pytorch 1.0.1 cuda80py37ha8650f8_0 pkgs/main
pytorch 1.0.1 cuda90py27h8b0c50b_0 pkgs/main
pytorch 1.0.1 cuda90py36h8b0c50b_0 pkgs/main
pytorch 1.0.1 cuda90py37h8b0c50b_0 pkgs/main
pytorch 1.0.1 cuda92py27h65efead_0 pkgs/main
pytorch 1.0.1 cuda92py36h65efead_0 pkgs/main
pytorch 1.0.1 cuda92py37h65efead_0 pkgs/main
pytorch 1.1.0 cuda100py27he554f03_0 pkgs/main
pytorch 1.1.0 cuda100py36he554f03_0 pkgs/main
pytorch 1.1.0 cuda100py37he554f03_0 pkgs/main
pytorch 1.1.0 cuda90py27h8b0c50b_0 pkgs/main
pytorch 1.1.0 cuda90py36h8b0c50b_0 pkgs/main
pytorch 1.1.0 cuda90py37h8b0c50b_0 pkgs/main
pytorch 1.1.0 cuda92py27h65efead_0 pkgs/main
pytorch 1.1.0 cuda92py36h65efead_0 pkgs/main
pytorch 1.1.0 cuda92py37h65efead_0 pkgs/main
pytorch 1.2.0 cpu_py27h00be3c6_0 pkgs/main
pytorch 1.2.0 cpu_py36h00be3c6_0 pkgs/main
pytorch 1.2.0 cpu_py37h00be3c6_0 pkgs/main
pytorch 1.2.0 cuda100py27h938c94c_0 pkgs/main
pytorch 1.2.0 cuda100py36h938c94c_0 pkgs/main
pytorch 1.2.0 cuda100py37h938c94c_0 pkgs/main
pytorch 1.2.0 cuda92py27hd3e106c_0 pkgs/main
pytorch 1.2.0 cuda92py36hd3e106c_0 pkgs/main
在build那一列我们可以看到py后面的数字代表的是python版本、cuda后面的数字代表的是cuda\cudatoolkit版本、cudnn后面数字代表的是cuDNN版本
接下来我们执行cudatoolkit、cudnn的搜索,目的是找出符合我们要求并且在这三次搜索中都能下载到的版本
conda search cuDNN -c conda-forge
conda search cudatoolkit -c conda-forge
搜索结果不再展示,和pytorch搜索结果格式一致
然后我们需要在这三个搜索结果中找出满足以下三个条件的版本:
- pytorch、cudatoolkit、cudnn版本都可以在搜索结果中找到
- 这三个版本同时出现在pytorch搜索结果中,比如pytorch 2.4.1 py3.8_cuda11.8_cudnn9.1.0_0 pytorch,这里就表明py3.8_cuda11.8_cudnn9.1.0_0这三个版本是适配的
- cuda版本也就是cudatoolkit版本小于nvidia-smi中显示的cuda版本
找到同时满足这三个条件的版本后,我们可以进行下载并安装
conda install cudnn=8.3.2.44 -c conda-forge
conda install cudatoolkit=11.6.0 -c conda-forge
conda install pytorch=1.12.0 torchvision cudatoolkit=11.6 cudnn=8.3.2 -c pytorch
以上的版本是我自己需要的,只是一个示例,在实践中需要自己根据上面的条件找出自己需要的版本,然后利用这三条语句分别下载安装
现在我们就已经安装好了gpu版本的pytorch、cuda
可以运行这份代码来检测一下是否安装成功
import torch
print(torch.__version__) # 应该输出 你安装的pytorch版本
print(torch.cuda.is_available()) # 应该输出 True,如果 GPU 版本安装正确且驱动程序设置无误
print(torch.cuda.get_device_name(0) if torch.cuda.is_available() else "No GPU device available")
如果输出的是
1.12.0(刚刚下载的版本)
True
NVIDIA RTX 3090(服务器中的GPU型号)
便证明安装成功
到此为止我们的gpu版本pytorch便安装成功,以及可以运行简单的GPU上运行的代码
接下来我们进行
torch-scatter
torch-sparse
torch-cluster
torch-spline-conv
这四个常用的包的安装
由于在老版本pytorch环境中用到的这四种包的版本通常也比较老,不易通过pip指令直接下载
我们采用直接下载对应whl文件的方法来下载安装
首先我们打开https://pytorch-geometric.com/whl/
可以看到网页中有很多版本的选项,我们找到刚刚下载安装的torch、cuda版本并点进去,比如我安装的是pytorch1.12.0 cudatoolkit11.6,那么就点击torch-1.12.0+cu116
可以看到网页中有很多whl文件可以下载
选择对应版本的whl文件下载即可
比如我要下载torch-scatter,就找到torch-scatter区域,找到cp37,注意这里的cp后面的数字代表的是python版本,我刚刚创建环境时使用的是python3.7版本,那么就选择cp37,此时我使用的是Linux系统所以选择Linux版本
选择好后点击即可下载
下载完成后将文件通过scp等方法传到服务器上
再在终端中执行
pip install torch_spline/torch_scatter-2.1.0+pt112cu116-cp37-cp37m-linux_x86_64.whl
即可完成下载安装,注意示例中的路径需要更改为实际路径
欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐


所有评论(0)