最近需要对原来的项目进行优化,而之前做实验所用的电脑已被淘汰,无奈只好重装各种环境。本篇对caffe的安装做了个梳理,一是给自己做笔记,二是希望能借此帮到有需要的人。由于当前机器上已经装了cuda与cudnn,所以本篇博客不对这些内容进行介绍,对如何安装cuda和cudnn感兴趣的朋友可以参考我的另一篇博客Ubuntu 14.04环境下安装CUDA 8.0及Cudnn 5.1。
安装环境
Ubuntu 14.04 + Matlab R2015a(链接:https://pan.baidu.com/s/1pM35pV1 密码:tc4i)
安装步骤
1. Prerequisites安装
需要安装ATLAS、protobuf、glog、gflags以及hdf5等依赖包。
sudo apt-get install libatlas-base-dev libprotobuf-dev protobuf-compiler libgoogle-glog-dev libgflags-dev libhdf5-serial-dev
libleveldb-dev libsnappy-dev libopencv-dev liblmdb-dev python-dev
sudo apt-get install --no-install-recommends libboost-all-dev
2. 下载caffe源码
sudo git clone https://github.com/BVLC/caffe
如果还未安装git,则先安装git
sudo apt-get install git
3. 编译caffe
caffe源码下载完毕后,进入caffe根目录,复制一份配置文件Makefile.config.example,并重命名为Makefile.config。对caffe的编译选项设置都是通过更改复制项Makefile.config实现的。
cp Makefile.config.example Makefile.config
由于当前机器上已安装配置了cuda与cudnn,故在我的配置文件中,我将
# USE_CUDNN := 1
一行取消了注释(删掉开头的“#”)。若没有GPU,则无需取消该行注释,但需要取消
# CPU_ONLY := 1
的注释。
更改完毕后,保存退出,利用如下命令编译即可。
make all -j8
make test -j8
make runtest -j8
-j8选项表示同时开8核进行编译,加快编译速度(我的CPU是8核的,同理,n核的cpu可加上-jn进行编译)。编译的输出结果没有报错,我们就可以认为caffe已经正常安装了。
4. 配置pycaffe接口
进入caffe的python目录下,输入命令安装所需的各个依赖包。
for req in $(cat requirements.txt); do sudo pip install $req; done
若没有安装pip的话,需要先安装pip。
sudo apt-get install python-pip
安装完pip或者已有pip时,最好检查一下是否为最新版本,若不是,升级pip(不升级的话有可能会有奇怪的问题出现)
sudo pip install -U pip
安装numpy
sudo apt-get install python-numpy
修改Makefile.config,添加相关依赖包的路径,将
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
这两行改成
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 /usr/lib/x86_64-linux-gnu/hdf5/serial
其实我后来看了一下,我并没有/usr/include/hdf5/serial和/usr/lib/x86_64-linux-gnu/hdf5/serial目录(hdf5肯定是装上了的),但是都装完了,我就懒得验证不要加这两个路径可不可以了,如果有朋友验证了的话,麻烦留言告知一下哈。
修改完毕并保存退出后,即可开始pycaffe接口的编译。
make pycaffe -j8
若编译出现错误,同时能够保证前面的步骤都没有错的话,不妨make clean后重新编译一下。
make clean
make pycaffe -j8
make all -j8
make test -j8
make runtest -j8
全部通过后,将caffe的python接口的路径添加到家目录下的.bashrc文件末尾,
export PYTHONPATH=~/caffe/python:$PYTHONPATH
之后便可在python环境下输入import caffe使用caffe了。
5. 配置matcaffe接口
安装matlab R2015a
安装十分简单,先将ISO文件挂载,之后打开命令行,进入挂载的目录,输入如下指令安装即可。
sudo ./install
安装密钥为:
01488-19946-57529-02811-46082-55250-36732-07842-48636-26144-34646-49703-29004-61854-13013-57205-32516
根据步骤安装即可。安装完成后,将matlab的可执行文件所在的路径添加到环境变量中,以后只要在终端中输入matlab即可打开matlab(我需要用sudo matlab才可以,直接打matlab会出错,可能是因为安装的时候也用了sudo吧)。具体操作为,打开家目录下的.bashrc文件,在末尾添加
export PATH=/usr/local/MATLAB/R2015a/bin:$PATH
至此,matlab安装完成。
编译matcaffe
打开Makefile.config,找到
# MATLAB_DIR := /usr/local
将其改为
MATLAB_DIR := /usr/local/MATLAB/R2015a
保存文件后退出,再编译matcaffe
make matcaffe -j8
没有出错的话就成功了。
之后在caffe目录下打开matlab,将接口目录matlab添加进搜索路径即可。
addpath ./matlab
savepath
大功告成!如有错误,恳请指正!