ubuntu16.04 安装caffe以及python接口

时间:2022-11-12 06:28:40

http://blog.csdn.net/qq_25073253/article/details/72571714
http://blog.csdn.net/greed7480/article/details/68486039

首先在你要安装的路径下 clone :
git clone https://github.com/BVLC/caffe.git

进入 caffe ,将 Makefile.config.example 文件复制一份并更名为 Makefile.config ,也可以在 caffe 目录下直接调用以下命令完成复制操作 :
sudo cp Makefile.config.example Makefile.config

复制一份的原因是编译 caffe 时需要的是 Makefile.config 文件,而Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。
然后修改 Makefile.config 文件,在 caffe 目录下打开该文件:

sudo gedit Makefile.config
修改 Makefile.config 文件内容:

1.应用 cudnn

#USE_CUDNN := 1
修改成:
USE_CUDNN := 1

2.应用 opencv 版本

#OPENCV_VERSION := 3
修改为:
OPENCV_VERSION := 3

3.使用 Python 接口

#WITH_PYTHON_LAYER := 1
修改为
WITH_PYTHON_LAYER := 1

4.修改 python 路径
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial


5 OK ,可以开始编译了,在 caffe 目录下执行 :
make all -j8
这是如果之前的配置或安装出错,那么编译就会出现各种各样的问题,所以前面的步骤一定要细心。
编译成功后可运行测试:
make runtest -j8


其中,我最初在make runtest 的时候是用的指令$ sudo make runtest,结果就报
错:
.build_release/tools/caffe: error while loading shared libraries: libcudart.so.8.0:
cannot open shared object file: No such file or directory
而换为$ make runtest 后就没报错了,刚开始特别纳闷,为什么加了超级用户权
限后反而还会有错误呢,谷歌后才知道错误里的“libcudart.so.8.0”是位于
“/usr/local/cuda-8.0/lib64”文件夹下的,而这个路径我们之前已将其添加进了
“LD_LIBRARY_PATH”环境变量中,但通过sudo 来执行该命令可能会导致其无法
使用“LD_LIBRARY_PATH”环境变量,这只是我目前个人的猜测,如果有清楚具
体原因的人,也请麻烦告知我一下,谢了!

6 添加python接口
首先编译 pycaffe :
cd caffe
sudo make pycaffe -j8

7 环境变量

方法1 当前用户添加
sudo echo export PYTHONPATH="home/imagealg/software/caffe/python" >> ~/.bashrc
source ~/.bashrc

方法2 全局用户添加
添加~/caffe/python到$PYTHONPATH:
$ sudo gedit /etc/profile
# 添加: export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
$ source /etc/profile # 使之生效

 

8 测试

cd $CAFFE_ROOT
./data/mnist/get_mnist.sh
数据转化
./examples/mnist/create_mnist.sh
训练模型
./examples/mnist/train_lenet.sh
测试模型
./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel -gpu=0