ubuntu16.04下面编译caffe_gpu的matlab接口

1 背景

题主需要训练caffe的matlab接口的代码,因此就开始在ubuntu下面折腾的历程,记录一下在ubuntu下面编译caffe的matlab接口中遇到的各种问题及解决办法,防止下次遗忘,也希望可以帮助到有需要的朋友。

2 下载caffe源码,配置Makefile.config

题主选择CaffeMex_v2

git clone https://github.com/liuyuisanai/CaffeMex_v2.git
cd CaffeMex_v2

接下来执行

cp Makefile.config.example Makefile.config
sudo gedit Makefile.config

因此我编译的GPU版本,所以需要注意设置 “USE_CUDNN := 1”,并且设置自己的MATLAB安装路径,我的是“MATLAB_DIR := /usr/local/MATLAB/R2015b”。具体修改见下面两张图片。

 3 执行编译caffe

cd CaffeMex_v2
make clean
make all

不出意外的话会出现下面这个错误

 把这个“./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: 没有那个文件或目录”输入到百度里寻找解决方案,发现了这篇并进行参考,主要的解决方案是

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/

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

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




于是我按照这个方案进行了替换,并继续执行

make clean
make all

不出意外,会出现以下错误

于是继续把”caffe编译时出现Unsupported gpu architecture 'compute_20'“ 复制到百度里面寻找解决办法,发现这篇

于是重新打开Makefile.config,进行了以下修改

 继续执行

make clean
make all

正常的话,不会出现问题了,编译过程中产生的很多warnings自行忽略即可。

4 执行编译caffe的matlab接口

执行

make matcaffe

正常的话,出现”MEX comleted sucessfully“即表明接口编译成功。并显示一个警告,说是gcc的版本不支持。这个没有关系,只是警告,不是错误,不要再强迫症继续折腾这个gcc版本给自己找麻烦了。

如果你报下面这个错误,可按照图中方案改进

记得重新执行(不需要再make clean)

make matcaffe

 

5  执行测试

执行

make mattest

正常的话,会出现下面的错误。

查了下网上说是matlab和ubuntu的库有冲突,然后matlab被kill了。于是寻找到参考1参考2,然后这两篇仅仅是参考,因为和我的问题不一样,所以没有解决问题,并最终找到这篇,和他的问题一样,按照他的如下方法进行修改。

进行了相应的修改如下

 之后继续执行

make mattest

但是我这里又报错如下

 于是把”“编译caffe的matlab接口时出现 This error was detected while a MEX-file was running. If the MEX-file
is not an official MathWorks function, please examine its source code
for errors. Please consult the External Interfaces Guide for information
on debugging MEX-files.
这段话输入到百度里寻找解决办法。发现这篇,其中的意思就是显卡内存不够。

最终使用了这篇解决了库冲突的问题。

6 再matlab中调用caffe接口验证

打开下matlab软件,调用下刚刚编译的caffe的matlab接口,如果上面都没有问题的话,可以正常运行,效果如下图所示。

但是我的出现下面的问题

直接提示matlab崩掉了。 其实后来我检查了,是我matlab程序的原因,到这儿caffe已经编译好了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸡啄米的时光机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值