可以说Python下的依赖管理是特别混乱费事的,这个情况在Deep Learning方面更是如此,大家在发论文的时候lib版本千奇百怪,要想复现真的是不太容易。这里我就简单总结一些方法:
首先Anaconda为我们提供了这种可能。例如我想运行这个repo:https://github.com/rootlu/MMDNE
它是在python 2.7+PyTorch 0.3.0的。所以我们现生成一个python 2.7的环境:
conda create -n pytorch0.3 python=2.7
conda activate pytorch0.3
其次需要看看能不能直接通过conda安装对应版本的pytorch,按照这里:
https://pytorch.org/get-started/previous-versions/#via-conda
的说明,可以通过:
conda install pytorch=0.4.1 -c pytorch
这种方式来安装“without CUDA”的版本,我觉得这个意思就是安装CPU版本吧?但是当运行了:
conda install pytorch=0.3.0 -c pytorch
之后,如果在python的prompt中输入:
import torch
就会报:
libcudart.so.8.0: cannot open shared object file: No such file or directory
这个,很明显就是CUDA没有装的原因啊,所以PyTorch官网上那个链接不靠谱啊。只能想想其他办法:
在这里:https://pytorch.org/get-started/previous-versions/#via-pip
介绍了CPU版本的下载链接,我们点开后:https://download.pytorch.org/whl/cpu/torch_stable.html
可以发现例如下面的一些下载链接:
torch-0.3.1-cp27-cp27m-linux_x86_64.whl
torch-0.3.1-cp27-cp27mu-linux_x86_64.whl
torch-0.3.1-cp35-cp35m-linux_x86_64.whl
torch-0.3.1-cp36-cp36m-linux_x86_64.whl
顾名思义其实挺好懂的,但是唯一让人疑惑的是:cp27m和cp27mu有啥区别?
查了一下才知道:https://www.cnblogs.com/lizhiqing/p/11983174.html
所以下载mu那个whl文件后,运行:
pip install torch-0.3.1-cp27-cp27mu-linux_x86_64.whl
就可以安装pytorch 0.3.1的CPU版本了。
当然,我们也可以通过Anaconda管理多个CUDA:https://blog.csdn.net/clksjx/article/details/86530905
可我总是觉得有点太麻烦(因为首先目的是为了能够跑起来别人的implementation,这时候不一定关心performance和能否在GPU上运行),所以就先试试CPU版本的pytorch安装。
安装好之后可以检查一下其版本:
Python 2.7.18 |Anaconda, Inc.| (default, Apr 23 2020, 22:42:48)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.__version__)
0.3.1
>>> print(torch.cuda.is_available())
False
>>>
就先记录到这里吧。