最近在学习Deep Learning
,参考一下经典的Caffe
,记录一下编译历程。
- 安装build-essentials
安装开发所需要的一些基本包
1 |
$ sudo apt-get install build-essential |
- 安装OpenCV
图片处理都算依赖OpenCV
,版本号要>=2.4版本,目前14.04
跟14.10
默认的版本都是2.4
1 |
$ sudo apt-get install libopencv-dev |
- 安装数学计算库
ATLAS
ATLAS
提供离散数学,线性代数的计算支持
1 |
$ sudo apt-get install libatlas-base-dev |
- 安装
Boost
库
Boost
提供了一系列的C++
算法支持,需要>=1.55版本,目前的14.04
跟14.10
默认的版本都是1.55
1 |
$ sudo apt-get install libboost-all-dev |
- 然后就是一些依赖项
protobuf
,leveldb
,snappy
,hdf5
,gflags-devel
,glog-devel
,lmdb-devel
1 |
$ sudo apt-get install libprotobuf-dev protobuf-compiler libleveldb-dev libsnappy-dev libhdf5-serial-dev libgoogle-glog-dev libgflags-dev liblmdb-dev |
- 安装
GIT
1 |
$ sudo apt-get install git |
- 下载代码
1 |
$ git clone https://github.com/BVLC/caffe.git |
- 编译
Caffe
1 2 3 |
$ cd caffe $ cp Makefile.config.example Makefile.config |
然后修改里面的内容,主要需要修改的参数包括
CPU_ONLY
是否只使用CPU
模式,没有GPU
没安装CUDA
的同学可以打开这个选项
BLAS
(使用intel mkl
还是OpenBLAS
)
完成设置后,开始编译
1 2 3 4 5 |
$ make all -j4 $ make test $ make runtest |
- 编译出错的处理
Ubuntu 16.04
下编译时候提示:
1 2 3 4 |
CXX src/caffe/solvers/sgd_solver.cpp In file included from src/caffe/solvers/sgd_solver.cpp:5:0: ./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory #include "hdf5.h" |
解决方法:
1. 编辑Makefile.config
,在文件最后,添加/usr/include/hdf5/serial
到INCLUDE_DIRS
1 |
INCLUDE_DIRS += /usr/include/hdf5/serial |
2.修改Makefile
文件,把hdf5_hl
和hdf5
修改为hdf5_serial_hl
和hdf5_serial
,也就是把下面第一行代码改为第二行代码。
原始内容:
1 |
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5 |
修改后的内容:
1 |
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial |
- 编译Python接口
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo apt install python-pip $ pip install --upgrade pip $ sudo pip install -r python/requirements.txt $ sudo apt-get install python-numpy $ make pycaffe $ make distribute |