1.ubuntu下安装一些框架、软件啥的真是处处是坑,在ubuntu 16.04和18.04.1上按照官网给的教程安装caffe2在最后一步(sudo python setup.py install)出错了,瞎折腾了一通之后终于搞定了,在此记录一下安装过程。
2.安装过程
首先参考官方教程,安装一些依赖库:
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
build-essential \
git \
libgoogle-glog-dev \
libgtest-dev \
libiomp-dev \
libleveldb-dev \
liblmdb-dev \
libopencv-dev \
libopenmpi-dev \
libsnappy-dev \
libprotobuf-dev \
openmpi-bin \
openmpi-doc \
protobuf-compiler \
python-dev \
python-pip
pip install --user \
future \
numpy \
protobuf \
typing \
hypothesis
# for Ubuntu 14.04
sudo apt-get install -y --no-install-recommends \
libgflags2 \
cmake3
# for Ubuntu 16.04 虽是ubuntu 18.04 但我按照这个搞了
sudo apt-get install -y --no-install-recommends \
libgflags-dev \
cmake
git clone https://github.com/pytorch/pytorch.git && cd pytorch
git submodule update --init --recursive #这一步很重要,会下载一些其他的依赖库
接下来这一步是一个坑,官网给出的是:
python setup.py install
如果敲入这一命令,会出现如下错误(只针对本电脑,其他电脑可能会很顺利地成功安装):
Traceback (most recent call last):
File "setup.py", line 719, in <module>
build_deps()
File "setup.py", line 285, in build_deps
build_dir='build')
File "/home/wd/pytorch/tools/build_pytorch_libs.py", line 281, in build_caffe2
check_call(['make', '-j', str(max_jobs), 'install'], cwd=build_dir, env=my_env)
File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command.........
Notices:
在运行python setup.py install会自动下载一个压缩文件mklml_lnx_2019.0.3.20190220.tgz(这个下载速度很慢,60多MB要40分钟左右mklml_lnx_2019.0.3.20190220.tgz)到pytorch/third_party/ideep/mkl-dnn/external目录下并自动解压,所以,为了保险起见,在运行下面的make命令之前先执行一下python setup.py install。
百思不得其解,实在没办法,我换一种方式搞:
Notices:
若要使caffe2支持GPU,在执行下面的make和make install命令时应先正确安装相应版本的CUDA和cudnn,否则安装后只支持cpu模式,接下去的make和make install花的时间有点长,耐心等待。
(1)进入git clone下载下来的pytorch目录,执行命令:
make
执行后生成一个build文件夹
(2)cd进入build目录,执行:
sudo make install
ok,运气不错,没出现错误。
(3)测试一下:
cd ~ && python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
输出 ‘Failure’,心又凉了,换一种可以输出详细错误信息的测试方式:
进入~目录,运行python,然后import一下:
from caffe2.python import core
出现如下错误提示
Error: libcaffe2.so: cannot open shared object file: No such file or directory
尝试解决方案:
cd /usr/local/lib
sudo ldconfig
再测试一下:
wd@wd:~$ cd ~ && python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"
Success #输出Success
(4)正确安装了CUDA和cudnn之后测试:
from caffe2.python import core
发现提示说caffe2不支持GPU模式,只支持cpu模式,解决办法:
将Caffe2添加到Python 库路径中:
gedit ~/.profile
末尾添加:
PYTHONPATH=/usr/local${PYTHONPATH:+:${PYTHONPATH}}
LD_LIBRARY_PATH=/usr/local/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source一下使之生效:
source ~/.profile
ok,搞定。