在进行配置时要先确保使用pyenv与virtualenv搭建单机多版本python多虚拟环境已经搭建好;
1. 首先安装git工具:
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
2.使用git工具下载caffe的源码到本地:
git clone https://github.com/BVLC/caffe.git
3.开始配置caffe:
在下载的caffe源码的第一层目录中,有一个文件Makefile.config.example。首先进行文件拷贝:
cp Makefile.config.example Makefile.config
然后对Makefile.config进行修改:
(pyenv虚拟环境下配置caffe的修改)
#如果使用CUDNN的话,需要改为下面的形式,注意去掉前面的"#"号注释符
USE_CUDNN := 1
#如果是在CPU上进行开发,需要改为下面的形式,注意去掉前面的"#"号注释符
CPU_ONLY := 1
# 根据系统安装好的OpenCV版本进行设置,注意去掉前面的"#"号注释符
OPENCV_VERSION := 3
# 根据实际的Python环境进行配置
PYTHON_INCLUDE := /home/syl/.pyenv/versions/3.6.0/include/python3.6m \
/home/syl/.pyenv/versions/3.6.0/envs/env360/lib/python3.6/sitepackages/numpy/core/include
#根据实际情况修改路径
PYTHON_LIB:=/home/syl/.pyenv/versions/3.6.0/lib
#去掉下面两项"#"号注释符,然后根据自己情况修改路径
PYTHON_LIBRARIES := boost_python3 python3.6m
PYTHON_INCLUDE := /home/syl/.pyenv/versions/3.6.0/include/python3.6m \
/home/syl/.pyenv/versions/3.6.0/envs/env360/lib/python3.6/site-packages/numpy/core/include
#为了避免出现找不到hdf5.h的错误,还需要修改下面两项
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
然后为了进一步解决hdf5.h的错误,需要修改makefile文件:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
4. 安装一些依赖库,以避免编译出错:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
5 . caffe编译:
j代表多线程编译
make all -j8
make alltest -j8
6 . 安装及运行python环境下的caffe还需要安装一些依赖的python库
进入pyenv虚拟环境
pyenv activate env360
然后安装python的相关库
pip3 install numpy
pip3 install opencv-python
pip3 install -U scikit-image
7 . 编译python版本的caffe:
make pycaffe
make all
make test
make runtest
8.测试Caffe的Python接口,切换到caffe/python文件目录下,记录下来当前路径,输入以下命令:
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
进入python环境,输入:
import caffe
9 . 如果没有报错,证明安装成功。
上面的方法,一旦关闭终端或者打开新终端则失效,如果放到配置文件中,可以永久有效果,命令操作如下:
#A.把环境变量路径放到 ~/.bashrc文件中
sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc
#B.使环境变量生效
source ~/.bashrc