创建pytorch虚拟环境的版本问题

Equivariant Graph Neural Networks for 3D Macromolecular Structure 这篇论文提出的模型gvp-gnn对于解决蛋白质设计问题很好的模型,因此准备复现这篇论文的源码,源码地址为https://github.com/drorlab/gvp-pytorch。然而在搭建pytorch虚拟环境的时候遇到的版本冲突问题花费了很长一段时间来解决。github上提供的各个包的版本如下图所示:

图神经网络一般都需要安装torch_geometric,torch_scatter,torch_cluster, torch-sparse这几个包,但是这几个包对于cude版本和torch版本有很强的依赖性,如果版本不配对则会出现很多问题(比如OSError: libcusparse.so.11: cannot open shared object file: No such file or directory和NoneType‘ object has no attribute ‘origin‘等等)。并且需要安装正确版本的cudetoolkit,否则也会报错。

下面记录一下我在安装gvp虚拟环境的辛酸路程:

(1)首先我在linux系统上安装了anaconda,安装过程参考

linux安装anaconda参考:https://blog.csdn.net/wyf2017/article/details/118676765

安装完anaconda后便开始安装pytorch虚拟环境

 安装pytorch虚拟环境参考:Win10+Anaconda环境下安装Pytorch - 简书 (jianshu.com)

 我们安装的python解释器版本为3.6.13装完解释器开始装pytorch 

pytorch版本参考官网:Previous PyTorch Versions | PyTorch

然而找到相应版本如下图所示:

 因为查看了nvidia的cude版本为11.6

 因此一开始选择conda安装pytorch,选择cude版本为11.3,但是安装的时候报错,原因是找不到cudetoolkit=11.3这个包,后来查找资料(如下):在官方anaconda网站上查找cudetoolkit但是按照要求安装也只有10.2.89这个版本。

(28条消息) PackagesNotFoundError: The following packages are not available from current channels的解决办法_正在学习的黄老师的博客-CSDN博客_packagesnotfounderror​​​​​​g​​​​​​​a

 Cudatoolkit :: Anaconda.org

 如果选择cude=10.2时候可以安装pytorch和cudetoolkit包。因此就先选择这个版本安装,但是用conda安装的话后面遇到了一个问题,查了相关资料表示原因就是因为使用conda安装pytorch导致的因此后来选择使用pip安装pytorch,然后安装cudetookit=10.2.89。安装完pytorch后就是要安装图神经网络依赖的几个第三方库,这里有两种放法:

方法一:https://data.pyg.org/whl/torch-1.8.1%2Bcu111.html。

直接在网站上找到对应版本的whl文件安装。

 方法二:Installation — pytorch_geometric documentation (pytorch-geometric.readthedocs.io)

两种方法都试用了一遍,使用方法以安装gvp上提供的版本号,但是也容易出现版本不匹配的问题,不知道什么原因,因此使用方法二安装第三方库,虽然版本上有所差异但是没有出现版本冲突,但是出现gpu算力与torch版本不匹配问题。

 后来搜索原因发现cudetoolkit版本过低需要在11.0以上。

(28条消息) GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation._Steven山椒鱼的博客-CSDN博客

 因此还是要想办法安装cudetoolkit==11.1版本但是一直显示没有这个包也试了很多方法也不行,最后终于找到了一个解决对的方法。(conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia -c conda-forge)

PackagesNotFoundError:安装pytorch时cudatoolkit=11.1.0 - 堆栈内存溢出 (stackoom.com)

后来重新创建一个虚拟环境,pip安装pytorch,cudetoolkit,图神经网络依赖的库的版本(方法二)一切就绪后,期待着可以运行成功,万万没想到又失败了,已经不知道到底什么原因了,报错原因还是版本冲突问题。

 查找原因是因为torch-sparse版本不对,但明明试按照文档要求安装的。

(28条消息) 解决报错:‘NoneType‘ object has no attribute ‘origin‘_山顶夕景的博客-CSDN博客

 后来我卸载掉这个包重新安装也不行,无意中我通过方法一找到whl包并且版本降低一级然后安装,神奇的事情发生了 竟然可以编译通过了。

通过好几天的奋斗 安装了好多虚拟环境,和不同版本的包,失败再失败到最后无意中成功了,只能说这个版本依赖问题真的头大,以往后面可以改进。目前也不知道为什么降低orch-sparse版本就可以运行通过了,真的玄学。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值