安装环境: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
成功的话那么久就可以结束安装了!