前言:
在一台系统环境较好的linux机器上可以很容易的安装caffe,但是如果系统本身很旧,又没有GPU的话,安装就太麻烦了,所有都得从头做起,本文档旨在尽可能覆盖安装所要采的坑。
步骤:
一、caffe是主要是C/C++和Python编写的。首先,得需要将gcc,g++安装好,通过yum安装就可以。
二、cuda的安装,如果机器上配置了NVIDIA系列GPU,则需要安装该驱动,推荐安装该驱动至7.0版本,推荐同时安装cuDNN。安装可以参考http://blog.csdn.net/xuanyuansen/article/details/43152311,centos系统下类似。
三、caffe的layer开发以google的protobuf为格式,需要安装该依赖,推荐安装2.6.1版本(gcc版本推荐4.4.7),下载地址为https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz,按照README文件里的步骤安装即可。
四、python安装,caffe提供了python的接口,可以用python进行相关开发,而且可以在ipython-notebook里面画出网络结构,非常方便。为了使用这些功能,推荐在目标机器上编译安装python2.7.10,源码下载地址见python官网,为了多用户环境考虑,强烈建议安装目标用户自己的python,可以在自己用户的home下建立usr文件夹,解压源码后加如下配置命令:
./configure --enable-shared \
--prefix=${HOME}/usr/local \
LDFLAGS=“-Wl,—rpath=${HOME}/usr/local/lib”
make && make install
即需要python的lib文件可以被其他程序共享,rpath后面就是自已的路径。
安装好后需要配置目标用户下的bashrc文件,加入如下行:
PATH=/home/lianhua/usr/local/bin:$PATH
然后source bashrc文件,如果进入python版本正确则安装成功,否则检查路径重新编译。
python安装好后需要安装pip,在官网上下载get-pip.py执行即可,然后安装相应版本的protobuf,同时安装caffe的官方说明安装其他的依赖:
for req in $(cat requirements.txt); do pip install $req; done
五、安装openblas
从openblas官网下下载安装安装包,安装README文件安装就好,make&&make install,可能需要sudo权限。
六、yum依赖安装
参加官方文档http://caffe.berkeleyvision.org/install_yum.html,需要安装上述所有依赖,首先需要安装和系统相应的最新的repository文件,然后执行sudo yum install epel-release,更新站点从而安装最最新的依赖。
七、opencv安装
前置需要安装较新版本的cmake,去官网下载安装即可。
opencv安装有两种方式:
1、下载源码包安装,请参考:
http://www.javieriparraguirre.net/installing-opencv-debian/(依赖的安装,centos类似)
http://www.jianshu.com/p/a41da779f763(opencv安装)
2、利用自动脚本安装:
地址:https://github.com/jayrambhia/Install-OpenCV
八、caffe安装配置
到此处终于可以进入正题,进行caffe的安装,如果上述安装过程顺利的话,caffe的安装也就没有太大问题了。关键在于正确配置Makefile.config文件,需要修改如下配置至相应的路径(参照配置文件的注释,疑惑的地方google即可):
1、CUDA_DIR
2、BLAS := open,BLAS_INCLUDE :=,BLAS_LIB :
3、PYTHON_INCLUDE :=
注意此处需要添加python下numpy的路径
4、PYTHON_LIB :=
5、WITH_PYTHON_LAYER := 1
注意此处需要将python的hdf5安装路径添加到:INCLUDE_DIRS := $(PYTHON_INCLUDE)和LIBRARY_DIRS := $(PYTHON_LIB)
上述配置文件修改好后,回到caffe的根目录,执行make all -j4,注意此处进程不要过多,否则会出现诡异的错误;
make test -j4
make runtest -j4
至此caffe主程序编译完毕。
下面编译pycaffe,至执行
make pycaffe
make distribute
执行完后修改bashrc文件,添加
PYTHONPATH=${HOME}/caffe/distribute/python:$PYTHONPATH
LD_LIBRARY_PATH=${HOME}/caffe/build/lib:$LD_LIBRARY_PATH
使得python能够找到caffe的依赖。
进入python,import caffe,如果成功则说明一切ok,否则检查路径从头再来,甚至需要重新编译python。
PS:
出问题可一直google,bless!!!