前言
在Pytorch-1.0即将到来之际,再来简单说说Pytorch最新版本的源码安装。
(Pytorch官方说在发布时间这个暑假的末尾阶段,应该会在..8月底吧)
目前pytorch的最新版本为0.4.1,更新信息看这里:https://github.com/pytorch/pytorch/releases
Pytorch的安装方式有3种:
- pip源安装
- conda源安装
- 源码安装
pip
和conda
安装比较容易,按照相应的命令安装即可,但是cuda版本和python版本只能使用官方提供的标准版,例如你安装了cuda9.1,对于官方提供的torch-0.4.1是不支持的,只有自己通过源码编译才可以。
对于不想通过源码编译安装的同志们,可以从Pytorch的历史版本库中挑选合适自己的版本进行安装:
https://pytorch.org/previous-versions/
安装过程
源码安装之前,首先需要确认几点:
如果我们在anaconda
环境中安装Pytorch(大部分人都是这样做的吧,起码的虚拟环境是要有的,不会anaconda命令的查看这里),首先需要卸清理掉之前的Pytorch版本:
pip uninstall torch
清理之后,如果我们直接运行python setup.py install
命令安装,在import torch的时候还是有可能出现下面的错误:
ImportError: /home/prototype/anaconda3/envs/pt-env/lib/python3.6/site-packages/torch/lib/libtorch.so.1: undefined symbol: _ZTIN2at4TypeE
libtorch.so.1: undefined symbol: #10234
错误出现的原因是”The root problem is that you have an old shared library hanging around which doesn’t have the correct symbols.”,大概意思就是旧的共享链接库还在,和新版本的symbols产生了冲突。
为此,一劳永逸的方法就是重新创建一个anaconda环境,从头开始Pytorch的源码安装。
安装过程按照官方提供的来即可。
因为caffe2和Pytorch底层进行了融合,如果想要顺便安装caffe2命令换成FULL_CAFFE2=1 python setup.py install
就可以了,很简单。
小问题
如果安装完了立马进行python环境执行import torch
命令的时候发现
ModuleNotFoundError: No module named 'torch._C'
很简单,cd
到别的目录(因为当前源码目录中有torch名字的文件夹)再次进入python中执行import torch
就可以了。