matlab下对caffe接口的调用

本文介绍了如何在MATLAB 2013a上通过调用Caffe的MATLAB接口使用Caffe。首先,由于MATLAB支持的GCC版本较低,需要将GCC降级到4.4.x。接着,编译MATLAB时会遇到库版本冲突的问题,可以通过链接或替换MATLAB目录下的libstdc++.so.6来解决。最后,运行Caffe提供的MATLAB demo进行图像分类,验证接口正确配置。

本节内容主要是实现,利用matlab调用caffe中的matlab接口,实现matlab环境下caffe 的使用


GCC降级

编译matlab

运行demo


(一)matlab支持gcc较低版本,而ubuntu14.04支持gcc4.8,所以要先将gcc降级

我的是matlab2013a,支持的是gcc4.4.x系列,所以我就安装gcc4.4,然后降级

1.安装gcc4.4

sudo apt-get install -y gcc-4.4
sudo apt-get install -y g++-4.4

2.降级

cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.4 gcc
sudo rm g++
sudo ln -s g++-4.4 g++

3.验证版本

gcc  -v



(二)编译matlab

cd 到caffe目录下

sudo make matcaffe

测试

<span style="font-family:SimSun;font-size:18px;"><strong>make mattest</strong></span>


出现问题


出现问题的原因:编译caffe时候的库与编译matlab相关的库版本不一样

有一个会在matlab目录下/usr/local/MATLAB/R2013a/sys/os/glnxa64;另外一个在/usr/lib/x86_64-linux-gnu/libstdc++.so.6

解决措施:

1.(推荐将matlab下的libstdc++.so.6链接到系统用的那个库的文件去

export LD_LIBRARY_PATH=/usr/local/MATLAB/R2013a/sys/os/glnxa64
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6

2.(不推荐)将matlab下的libstdc++.so.6 更改名称为libstd++.so.6_back(让matlab找不到这个,但是为了安全还是备份一下吧),这样在执行matlab编译的时候会自动去找系统用的库


执行测试

make  mattest



(三)caffe中提供了matlab的demo

An ILSVRC image classification demo is in caffe/matlab/demo/classification_demo.m (you need to download BVLC CaffeNet from Model Zoo to run it).

打开matlab,切换目录到caffe-master/matlab/demo目录下,拷贝cat.jpg到此目录下

运行classification_demo.m,得到1000*1的输出 因为imagnet一共1000类,输出的1000维就是每一类的输出,最大值就是对应的类别

<span style="font-family:SimSun;font-size:18px;">run('classification_demo.m')</span>



特别说明: 此方法 是对于matlab2013a版本 ,对于matlab2014a版本无需降级gcc,需要在Makefile 第410行添加

CXXFLAGS += -std=c++11 


详情请参考

http://blog.csdn.net/weiqi_fan/article/details/71023222

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值