安装环境:Ubuntu 16.04lts 64位, gcc5.4 gpu1050ti,cuda8.0,cudnn5.1.10

1. 安装依赖库

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

2. 安装caffe

  终端输入命令:

git clone git://github.com/BVLC/caffe.git

  然后找到caffe文件夹,打开后会发现Makefile.config.example 文件,

  这时候将Makefile.config.example复制一份命名为Makefile.config,并打开,将

#USE_CUDNN := 1
# CUDA_DIR := /usr/local/cuda
# CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
  #-gencode arch=compute_20,code=sm_21 \
  #-gencode arch=compute_30,code=sm_30 \
  #-gencode arch=compute_35,code=sm_35 \
  #-gencode arch=compute_50,code=sm_50 \
  #-gencode arch=compute_50,code=compute_50

  去掉注释#,并且CUDA_DIR 更换为你的cuda安装路径

  打开Makefile.config文件,将

/usr/include/hdf5/serial 

  添加到

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

  打开Makefile文件,找到

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

  之后执行

make all
make test
make runtest

  若在编译过程中报错出现丢失文件的情况,可以寻找丢失文件路径。

  例如常见问题:

./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory

  解决方法:找到文件路径:

sudo find / -name hdf5.h

  找到对应文件路径,将其加入Makefile.config中。

  查询结果为:

/usr/include/hdf5/serial/hdf5.h

  打开Makefile.config,在

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

  之后添加 

/usr/include/hdf5/serial 

  注意路径,有INCLUDE_DIRS 和 LIBRARY_DIRS两个,看清丢失文件的路径在/usr/include中还是/usr/lib中

  正常情况下应该是没问题了。

3. 安装anaconda,配置python caffe接口

1.安装anaconda ,选择Python2.7  注意文件名

bash Anaconda2-4.3.0-Linux-x86_64.sh

2.安装过程中注意提示,千万不要一直enter,记得一直选择默认的就行,傻瓜式安装,之后会提示是否在bashrc文档中添加路径,这里选择“yes”

3.打开bashrc文档,在Home下,打开显示隐藏文件选项,就可以找到该文件。在最后一行里加入

export PATH=/home/(你的用户名)/anaconda2/bin:$PATH(具体路径根据你的安装路径而定)
export PYTHONPATH=/home/(你的用户名)/caffe/python:$PYTHONPATH(同上)
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6

  Bashrc文档更改后需要source一下,或者注销/重启电脑:

4. .修改caffe下的Makefile.config文档

#ANACONDA_HOME := $(HOME)/anaconda2

#PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
  #$(ANACONDA_HOME)/include/python2.7 \
  #$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include

#PYTHON_LIB := $(ANACONDA_HOME)/lib
#WITH_PYTHON_LAYER := 1

 去掉注释#,将

PYTHON_LIB := /usr/lib

 加上注释。

5. 升级Anaconda中的gcc版本

conda update --all

  或者

conda  install libgcc

  出现升级确认提示,输入y,升级成功后,关闭终端重新打开

 6. 回到caffe目录下,编译

make all
make pycaffe

  成功后,输入python,接着输入

import caffe

  如果出现错误提示:

No module named google.protobuf 

  此时切换到 ~/anaconda2/bin/ 目录下输入命令

pip install protobuf

  结束后再重新在caffe目录下make clean; make all; make pycaffe; 然后重新import caffe,成功的话应该没有任何提示。

  注意不要用conda install protobuf,这样虽然能import caffe,但是如果重新编译caffe,就会报错。这是由于ubuntu此时有两个python环境。

4. 测试

  进入caffe安装目录

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh

  成功的话那么久就可以结束安装了!