ubuntu matlab caffe,ubuntu16.04, Matlab2016b caffe编译安装

$ sudo apt update

$ apt search openblas

$ sudo apt install libopenblas-dev

$ sudo update-alternatives --config libblas.so.3

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 libgflags-dev libgoogle-glog-dev liblmdb-dev

python 依赖库

cd /home/zzh/caffe/python

apt-get install python-pip

pip install --upgrade pip

for req in $(cat requirements.txt); do pip install $req; done

5.caffe编译

修改Makefile.config文件.

cd ~/caffe //进入你的caffe目录

cp Makefile.config.example Makefile.config

我有用到gpu和opencv以及后面要matlab,所以我修改了下面这些:

USE_CUDNN:=1

USE_OPENCV:=1

MATLAB_DIR:=/home/liuhao/MATLAB/

python路径用的是anaconda的目录。

问题1: 这里需要修改一个地方,如果不改的话后面会碰到fatal error: hdf5.h:这个错误。

把INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 后面加上 /usr/include/hdf5/serial

把LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib /usr/lib/x86_64-linux-gnu 后面加上/usr/lib/x86_64-linux-gnu/hdf5/serial

开始编译:

make all -j8

测试:

make runtest

python接口:

make pycaffe

Matlab接口:

make matcaffe

make mattest

6.可能遇到的问题

6.1 运行make mattest时可能会碰到下面这个错误:

MEX-file '/home/zzh/caffe/matlab/+caffe/private/caffe_.mexa64' 无效:

/usr/local/MATLAB/R2016b/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6:

version `GLIBCXX_3.4.21' not found (required by

/home/zzh/caffe/matlab/+caffe/private/caffe_.mexa64)

解决方式是将matlab的libstdc++.so.6链接到系统的库文件。

sudo rm /usr/local/MATLAB/R2016b/sys/os/glnxa64/libstdc++.so.6 sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/local/Matlab/R2016a/sys/os/glnxa64/libstdc++.so.6

6.2 No module named google.protobuf.internal

这个问题会在python 中import caffe时遇到

sudo apt-get install python-protobuf

pip install protobuf

/home/username/anaconda2/bin/pip install protobuf

我的是用第一条命令搞定了

6.3 Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

这个也是在import caffe的时候碰到的。

conda install nomkl numpy scipy scikit-learn numexpr

conda remove mkl mkl-service

6.4 AttributeError: 'module' object has no attribute 'bool_'

这个就要把caffe/python目录加到系统路径里

export PYTHONPATH="/home/liuhao/framework/caffe/python:$PYTHONPATH"

可以把这个加到.bashrc里面

6.5 其他问题

Error 'fatal error: pyconfig.h: No such file or directory' when executing 'make pycaffe' on dev-branch

export CPLUS_INCLUDE_PATH=/usr/include/python2.7

中间还碰到过一个诡异问题,因为一个叫libharfbuzz.so.0的库弄得vim和桌面都挂了,解决的方式是重装了harfbuzz和freetype。可以参考 http://www.linuxfromscratch.org/blfs/view/svn/general/harfbuzz.html

还有个好像是cuda和gcc版本问题,直接注释/usr/include/host_config.h里面检测gcc版本的地方就可以了。

还有一些问题忘记了,具体再google吧一般都有人踩过的坑。

PS: 除了这种方式,还可以用cmake来装,这样就避免了手工去改Makefile.config文件。

10.27 update

支持多GPU要开启NCCL,

NCCL安装:

$ git clone https://github.com/NVIDIA/nccl.git

$ cd nccl

$ sudo make install -j4

在~/.bashrc中将NCCL加入

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/liuhao/framework/nccl/build/lib/"

遇到新问题:

caffe/proto/caffe.pb.h: No such file or directory

You need to generate caffe.pb.h manually using protoc as follows.

#In the directory you installed Caffe to

protoc src/caffe/proto/caffe.proto --cpp_out=.

mkdir include/caffe/proto

mv src/caffe/proto/caffe.pb.h include/caffe/proto

不过我是直接运行下面的命令可以了:

sudo apt-get remove libprotobuf-dev

Python.h找不到,config 文件里的python path检查一下

2017.11.1 update

error: /home/liuhao/anaconda2/lib/libpng16.so.16: undefined reference to `inflateValidate@ZLIB_1.2.9'

解决方式:自行编译zlib1.2.9

wget https://sourceforge.net/projects/libpng/files/zlib/1.2.9/

unzip xxx

cd xxx

./configure

make

sudo make install

欢迎关注公众号:vision_home 共同学习,不定期分享论文和资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值