Caffe简明教程4:安装Caffe的第三步-安装Caffe

您可以查看所有文章的索引:Caffe简明教程0:文章列表


本文介绍在已安装 CUDA8.0cuDNN5.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)
    1. ATLAS:$ sudo apt-get install libatlas-base-dev
    2. OpenBLAS:$ sudo apt-get install libopenblas-dev
    3. MKL:需自行安装。
  • 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分类器


欢迎加群交流,点击链接加入群【Python爱好者交流】
这里写图片描述

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页