Caffe简明教程4:安装Caffe的第三步-安装Caffe
Posted xietx1995
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Caffe简明教程4:安装Caffe的第三步-安装Caffe相关的知识,希望对你有一定的参考价值。
您可以查看所有文章的索引:Caffe简明教程0:文章列表
本文介绍在已安装 CUDA8.0
及 cuDNN5.1
的前提下安装Caffe
1. 下载Caffe
下载caffe很简单,从GitHub仓库克隆即可(仓库地址:https://github.com/BVLC/caffe),输入下面的命令,克隆Caffe到本地:
$ cd
$ git clone https://github.com/BVLC/caffe.git
克隆完成后,用户主目录下将出现一个名为caffe
的文件夹。
2. 安装Caffe的依赖
安装caffe除了需要CUDA和cuDNN以外,还需要以下这些库:
- 一些基本的依赖:
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev
$ sudo apt-get install libopencv-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev
- BLAS: (Basic Linear Algebra Subprograms)即基础线性代数子程序库,可以安装下面的任意一个(我装的第一个ATLAS)
- ATLAS:
$ sudo apt-get install libatlas-base-dev
- OpenBLAS:
$ sudo apt-get install libopenblas-dev
- MKL:需自行安装。
- ATLAS:
- Python开发包:
$ sudo apt-get install python-dev
3. 编译Caffe
确保以上依赖都安装好以后,就可以开始编译Caffe了。
1)确保当前在克隆好的caffe目录下
可以使用命令 pwd
检查。
2)创建Makefile.config文件,用于配置caffe的编译
$ cp Makefile.config.example Makefile.config
3) 双击Makefile.config文件以更改编译设置
因为我们要使用cuDNN,所以把USE_CUDNN
设置为1(方法:删除第8行的#
号和井号后面的空格),使USE_CUDNN顶格。
另外需要删掉不兼容的计算机架构,将37行的CUDA_ARCH的前两行删掉:
-gencode arch=compute_20,code=sm_20 \\
-gencode arch=compute_20,code=sm_21 \\
删掉后应该是这样:
CUDA_ARCH := -gencode arch=compute_30,code=sm_30 \\
-gencode arch=compute_35,code=sm_35 \\
-gencode arch=compute_50,code=sm_50 \\
-gencode arch=compute_52,code=sm_52 \\
-gencode arch=compute_60,code=sm_60 \\
-gencode arch=compute_61,code=sm_61 \\
-gencode arch=compute_61,code=compute_61
4)运行下面的命令开始编译
$ make all
5)运行下面的命令编译测试程序
$ make test
6)运行下面的命令进行测试
$ make runtest
如果全部顺利完成,那么Caffe则已经编译好了。
如遇到问题,请看下面的问题解答
4. Trouble shooting(问题解答)
1)HDF问题
src/caffe/net.cpp:8:18: fatal error: hdf5.h: No such file or directory
compilation terminated.
Makefile:581: recipe for target '.build_release/src/caffe/net.o' failed
make: *** [.build_release/src/caffe/net.o] Error 1
解决办法:
打开Makefile.config
文件,定位到INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
,在后面加上/usr/include/hdf5/serial
:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
然后重新运行make all
。
2)gflags问题
In file included from src/caffe/net.cpp:10:0:
./include/caffe/common.hpp:5:27: fatal error: gflags/gflags.h: No such file or directory
compilation terminated.
Makefile:581: recipe for target '.build_release/src/caffe/net.o' failed
make: *** [.build_release/src/caffe/net.o] Error 1
解决办法:
sudo apt-get install libgflags-dev
然后重新运行make all
。
3)glog问题
In file included from src/caffe/net.cpp:10:0:
./include/caffe/common.hpp:6:26: fatal error: glog/logging.h: No such file or directory
compilation terminated.
Makefile:581: recipe for target '.build_release/src/caffe/net.o' failed
make: *** [.build_release/src/caffe/net.o] Error 1
解决办法:
sudo apt-get install libgoogle-glog-dev
然后重新运行make all
。
4)lmdb问题
In file included from src/caffe/util/db.cpp:3:0:
./include/caffe/util/db_lmdb.hpp:8:18: fatal error: lmdb.h: No such file or directory
compilation terminated.
Makefile:581: recipe for target '.build_release/src/caffe/util/db.o' failed
make: *** [.build_release/src/caffe/util/db.o] Error 1
解决办法:
sudo apt-get install liblmdb-dev
然后重新运行make all
。
5)cannot find -lxxx问题
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0
/usr/bin/ld: cannot find -lhdf5_hl
/usr/bin/ld: cannot find -lhdf5
collect2: error: ld returned 1 exit status
Makefile:572: recipe for target '.build_release/lib/libcaffe.so.1.0.0' failed
make: *** [.build_release/lib/libcaffe.so.1.0.0] Error 1
解决办法:
修改Makefile.config
文件,在LIBRARY_DIRS
后添加/usr/lib/x86_64-linux-gnu/hdf5/serial
:
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
然后重新运行make all
。
如果任然有问题,扫描下方二维码,加入我们一起讨论。
下一篇文章:Caffe简明教程5:训练你的第一个Caffe模型-MNIST分类器
以上是关于Caffe简明教程4:安装Caffe的第三步-安装Caffe的主要内容,如果未能解决你的问题,请参考以下文章
Caffe简明教程3:安装Caffe的第二步-安装cuDNN
Caffe初学者第二部:Ubuntu16.04上安装caffe(CPU)+Matlab2014a+Opencv3的详细过程 (亲测成功, 20180529更新)