caffe+anaconda3(python3.5 cpu版本)安装步骤
caffe+anaconda3(python3.5 cpu版本)安装步骤
前言
经历三次安装caffe+anaconda3,每次都出现各种问题,终于决定写篇博客记录一下。
步骤
整体安装步骤如下:
- 下载安装anaconda3;
- 下载并编译caffe;
- 编译caffe的python接口;
步骤并不多。。坑很多。。尤其anaconda3(caffe对anaconda3支持并不好)
第一步:下载并安装anaconda3
下载
在anaconda官网下载Linux版本的anaconda3,最好下载python3.5版本的anaconda,即:anaconda3-4.2.0
安装
在终端输入:bash Anaconda3-4.2.0-Linux-x86_64.sh
一路enter或yes即可安装完毕。最后会在~/.bashrc即环境变量中配置anaconda路径,
若没有配置,则自己手动配置:export PATH="/home/xxx/anaconda3/bin:$PATH"
第二步:安装依赖库
sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev (!!!这个后面再说)
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
安装就完事了
第三步:下载并编译caffe
下载caffe源码
git clone https://github.com/BVLC/caffe.git
进入caffe/python/安装需要的包
for req in $(cat requirements.txt); do pip install $req; done
编译caffe源码
-
先对Makefile.config做备份:
cp Makefile.config.example Makefile.config
-
对Makefile.config做修改(重点:要修改的地方)
# CPU-only switch (uncomment to build without GPU support). CPU_ONLY := 1
# We need to be able to find Python.h and numpy/arrayobject.h. # PYTHON_INCLUDE := /usr/include/python2.7 \ # /usr/lib/python2.7/dist-packages/numpy/core/include # Anaconda Python distribution is quite popular. Include path: # Verify anaconda location, sometimes it's in root. ANACONDA_HOME := $(HOME)/anaconda3 PYTHON_INCLUDE := $(ANACONDA_HOME)/include \ $(ANACONDA_HOME)/include/python3.5m \ $(ANACONDA_HOME)/lib/python3.5/site-packages/numpy/core/include **(!!!注意这里也先注释掉(即:ANACONDA_HOME,PYTHON_INCLUDE))** # Uncomment to use Python 3 (default is Python 2) PYTHON_LIBRARIES := boost_python3 python3.5m # PYTHON_INCLUDE := /usr/include/python3.5m \ # /usr/lib/python3.5/dist-packages/numpy/core/include # We need to be able to find libpythonX.X.so or .dylib. # PYTHON_LIB := /usr/lib PYTHON_LIB := $(ANACONDA_HOME)/lib
# Uncomment to support layers written in Python (will link against Python libs) WITH_PYTHON_LAYER := 1 # Whatever else you find you need goes here. INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
-
编译(编译前先看下最后面的环境变量配置)
make clean
make all -j4
make test -j4
make runtest -j4
!!!之后取消掉Makefile.config中ANACONDA_HOME,PYTHON_INCLUDE的注释
make pycaffe -j4
make pytest
最后在python中import caffe若无出错并dir(caffe)后又许多包才算安装好了。
注意:每次出错都要先make clean再重新编译。
部分错误集锦及解决(其他错误可自行百度解决)
错误:/usr/bin/ld:cannot find -lboost_python3
解决:cd /usr/lib/x86_64-linux-gnu/
sudo ln -s libboost_python-py35.so libboost_python3.so
(做个软链接)
错误:-lpython3.5m无法找到的问题。
还记得上面说的**sudo apt-get install python-dev (!!!这个后面再说)**吗
解决:sudo apt-get install python3.5-dev
import caffe 出错:
1. ImportError: /home/kzl/anaconda2/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by caffe/_caffe.so)
解决:conda install libgcc
2. raise ValueError, "Can't create weekday with n == 0"
^
SyntaxError: invalid syntax
解决: pip install python-dateutil --upgrade
另附上~/.bashrc环境变量配置:
export PATH="/home/xxx/anaconda3/bin:$PATH"
export CPLUS_INCLUDE_PATH=/home/xxx/anaconda3/include/python3.5m
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_INCLUDE_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_INCLUDE_PATH
export PYTHONPATH=/home/xxx/caffe/python:$PYTHONPATH