Caffe2与PyTorch合并到同一个目录下后,PyTorch推出了目前最新的稳定版本0.4.1,但是通过以往在Anaconda环境中直接pip install torch torchvision的方式安装PyTorch时,安装后import会报如下错误:
libshm.so: undefined symbol: _ZTI24THRefcountedMapAllocator
搜索后得知该错误是由于合并后的Caffe2和pre-build的PyTorch-0.4.1冲突所致,故考虑通过源码编译安装PyTorch。
由于我同时需要使用Detectron,该工具包只支持Python2。之前已经按照Caffe2的官方指南将其安装在系统的环境中,即/usr/local/python2.7/dist-packages
目录下,(执行sudo python2 setup.py install
),使用系统自带的Python2.7可以正常运行Detectron。
但是这种安装方式只能在Python2下使用PyTorch,我又同时需要在Python3下使用PyTorch,如果在系统的Python3中再编译安装PyTorch就比较麻烦,不想这么干,所以考虑在Anaconda中新建一个环境,按照PyTorch GitHub中的源码编译安装指南,安装各种依赖,在其他目录下再clone一份PyTorch代码,然后执行python setup.py install
进行编译安装,此时不需要sudo
就可以顺利将PyTorch安装至Anaconda的Python目录下,即/home/huitr/anaconda3/envs/mmdetection/lib/python3.6/site-packages
。此时安装的PyTorch版本显示为1.0.0a0+952df2b
,不知道能不能运行mmdetection的代码,以后再试试吧。