更多信息请查阅caffe官方文档
OS: Ubuntu 16.04 LTS
Python 2.7.12(系统预装)
打开终端(Ctrl+Alt+T),执行以下命令安装caffe依赖项:
sudo apt install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
为了获得更好的CPU性能,执行以下命令安装ATLAS:
sudo apt install libatlas-base-dev
或执行以下命令安装OpenBLAS:
sudo apt install libopenblas-dev
或 安装MKL。
Ubuntu预装了Python2.7版本,但要使用caffe的Python接口需执行以下命令:
sudo apt install python-dev
以上命令无论在哪个文件夹下执行都没有影响,Linux系统有默认的安装目录。自Ubuntu 16.04 LTS开始,apt命令全面取代了Linux软件包管理中的apt-get、apt-cache等命令。为兼顾老用户的使用习惯Ubuntu 16.04依然保留着apt-get系列命令。
使用cd命令转到caffe的安装目录(我的是/home/”username”/local),使用以下命令从Github获取caffe源码(没有git的话要先使用命令sudo apt install git
进行安装):
git clone https://github.com/BVLC/caffe.git
下载完成后,cd到caffe文件夹,使用以下命令从模板文件Makefile.config.example复制一份Makefile.config:
cp Makefile.config.example Makefile.config
因为是CPU-only模式,需要修改Makefile.config内容:去掉第8行# CPU_ONLY := 1行首的”#”。
此外还需要修改接近文件末尾的两行
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/hdf5/serial
否则会报hdf5错误。
保存完成后就可以进行编译了,因为我要使用caffe的Python接口,所以需要编译pycaffe。cd到caffe文件夹下的python文件夹,使用以下命令安装pycaffe的依赖项(没有pip的话要先使用命令sudo apt install python-pip
进行安装):
for req in $(cat requirements.txt); do pip install $req; done
因为pip默认的源在国外,所以下载速度惨不忍睹,这里可以修改命令为
for req in $(cat requirements.txt); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done
以使用清华的镜像来提高下载速度。
以下是安装时的几个坑:
填坑需要修改requirements.txt:
ipython>=3.0.0 --> ipython==5.6.0
...
protobuf>=2.5.0 --> protobuf==2.6.1
pycaffe依赖项安装完成后,就可以编译pycaffe了。cd到caffe目录下,运行以下命令进行编译:
make pycaffe -j8
make all -j8
make test -j8
make runtest -j8
其中8表示并行线程的数量,线程数量最好和自己电脑的CPU核数一致。如果编译时出错,建议在找到错误原因后使用命令make clean
清理后再重新开始编译。
如果要在Python中导入caffe模块,还要使用以下命令设置模块路径:
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
其中/path/to/caffe是caffe的路径(我的是/home/”username”/local/caffe)。注意:不能在…/caffe/python/caffe目录下导入caffe模块。
上面设置模块路径的方法只在当前终端有效,要使模块路径在所有终端甚至重启后都有效,可以使用下面的两种方法。1. 使用sudo vim /etc/profile
打开配置文件,添加上面的命令到文件里,然后使用source /etc/profile
使更改过的配置文件立即生效。2. 在/etc/profile.d文件下新建pythonpath.sh文件(文件名无所谓,但必须是.sh后缀名),然后将上面的命令保存到pythonpath.sh里,之后重新启动就行了。个人推荐第二种方法,虽然重启麻烦了点,但胜在美观。
最后,可以导入caffe模块试一试,看看是否配置成功。
$ python
>>> import caffe
>>>
导入成功!开始caffe之旅吧!