caffe在ubuntu16.04下的安装

时间:2021-05-05 06:30:38

安装工具以及依赖:

sudo apt-get install git
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

拉caffe的源码:

sudo git clone https://github.com/bvlc/caffe.git
cd caffe
mv
sudo mv Makefile.config.example Makefile.config

修改Makefile.config
将CPU_ONLY的注释去掉,表示只支持CPU不支持GPU

执行make进行编译:

sudo make -j6

-j表示利用所有可用的线程去编译
-j6表示利用6个线程去编译

查看线程的语句:

grep 'processor' /proc/cpuinfo | sort -u | wc -l

查看cpu信息

[root@xckydb ~]# cat /proc/cpuinfo

出现:“fatal error: hdf5.h: 没有那个文件或目录”解决方法
参考自http://blog.csdn.net/hongye000000/article/details/51043913

Step 1
在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

Step 2
在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

可能出现的问题

以下是本人在配置caffe遇到的问题,比较简单,但是由于网上现成的资料比较少,所以还是花了不少时间才解决它们。
在此把这些问题展示出来,希望能让和我一样的新手少走一些弯路。
环境 ubuntu15.10,cuda7.5,cudnn-7.0-Linux-x64-v4-rc

1、make all步骤出现错误
./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory

解决方法
在Makefile.config文件的第85行,添加 /usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。
INCLUDE_DIRS := (PYTHONINCLUDE)/usr/local/includeINCLUDEDIRS:= (PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

英文文档链接
https://gist.github.com/wangruohui/679b05fcd1466bb0937f

2、make pycaffe出现错误

python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: no such file or directory
Makefile:498: recipe for target ‘python/caffe/_caffe.so’ failed make: * [python/caffe/_caffe.so] Error 1

原因
python-numpy没有安装到位

解决方法
输入命令
sudo apt-get install python-numpy
确认Makefile.config文件中有以下代码,注意路径或版本号与自己的相符。
PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include

3.cudnn的安装
copy文件至CUDA安装目录:解压后,在你的目录下生成一个“cuda”文件夹,对于cuDNN6.5的版本解压后生成“cudnn­6.5­linux­x64­v2”文件。使用如下命令copy,注意第二个有个 -a 参数,否则,拷贝过去的文件失去了链接。
1 # copy the library files into CUDA’s include and lib folders
2 sudo cp cuda/include/cudnn.h /usr/local/cuda/include
3 sudo cp -a cuda/lib64/libcudnn* /usr/local/cuda/lib64
cuDNN安装完成。
在这一步骤,按照网上的一些教程配置cudnn时,需要更新软链接,但是由于版本不同等原因,可能不能正确地输入更新软链接命令,通过-a参数,可以省去更新软链接命令。