dp-dpm与matcaffe编译

Deformable Part Model are Convolution Neural Network


可变形部件模型即卷积神经网络,大神rbg咋论文里,对这个观点进行了阐述,用cnn feature map

代替hog特征,进行latent svm的训练,从而将DPM扩展为cnn



在编译dp-dpm的caffe代码时,由于matlab的gcc版本较低,而linux系统是Ubuntu14.04, gcc4.8, 所以在运行的时候会出错,如下:


Invalid Mex File : caffe.mexa64 ,  sys/os/glnxa64/libgcc_s.so.1 GCC4.3 not found云云



解决方法如下:


将matlab下的libstdc++.so.6链接到系统用的那个库的文件去export LD_LIBRARY_PATH=/usr/local/MATLAB/R2013a/sys/os/glnxa64  

export LD_PRELOAD=/lib/x86_64-linux-gnu/libgcc_s.so.1 



有篇帖子对gcc进行了降级,此处并没有采用;


原方法帖子如下:


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


GCC降级

编译matlab

运行demo


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

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

1.安装gcc4.4

[plain]  view plain  copy
  1. sudo apt-get install -y gcc-4.4  
  2. sudo apt-get install -y g++-4.4  

2.降级

[plain]  view plain  copy
  1. cd /usr/bin  
  2. sudo rm gcc  
  3. sudo ln -s gcc-4.4 gcc  
  4. sudo rm g++  
  5. sudo ln -s g++-4.4 g++  

3.验证版本

[plain]  view plain  copy
  1. gcc  -v  



(二)编译matlab

cd 到caffe目录下

[plain]  view plain  copy
  1. sudo make matcaffe  

测试

[plain]  view plain  copy
  1. <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链接到系统用的那个库的文件去

[plain]  view plain  copy
  1. export LD_LIBRARY_PATH=/usr/local/MATLAB/R2013a/sys/os/glnxa64  
[plain]  view plain  copy
  1. export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6  

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


执行测试

[plain]  view plain  copy
  1. 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维就是每一类的输出,最大值就是对应的类别

[plain]  view plain  copy
  1. <span style="font-family:SimSun;font-size:18px;">run('classification_demo.m')</span>  


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

seasermy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值