Ubuntu 16.04配置caffe和MATLAB2016b的连接

继上次在anaconda3的中安装好了tensorflow,kera后环境后,配置了caffe在anaconda3中的接口,这次又想着试着配置matlab接口,说不定以后会用呢。好了,开始记笔记了。上次配置的文档在这里。至于如何在ubuntu下安装MATLAB2016b,请自行百度,可根据此教程

        cd /home/user/caffe 
        vim Makefile.config
        ##修改下面两行就行
    MATLAB_DIR := /home/user
    MATLAB_DIR := /home/user/MATLAB/R2016b 
        ##我的MATLAB版本为2016b版,安装路径为/home/user
        make matcaffe
        ##此时会有警告,提示版本不兼容问题,但是不影响后续步骤

这里写图片描述

        sudo vim /etc/ld.so.conf #动态链接库的配置
/home/user/anaconda3/lib #添加这一项
        sudo ldconfig #执行链接配置

这里写图片描述

        locate libstdc++.so.6 #查看libstdc++.so.6所在位置

这里写图片描述

        sudo rm -rf /home/user/MATLAB/R2016b/sys/os/glnxa64/libstdc++.so.6
        sudo ln -s /home/user/anaconda3/lib/libstdc++.so.6 /home/user/MATLAB/R2016b/sys/os/glnxa64/libstdc++.so.6 #进行链接

接下来就可以进行编译了。

        sudo make mattest 
#最后结果可能会有error(不影响),但是编译一定要有下图所示的一系列过程,最好进行多次操作。

这里写图片描述
打开MATLAB,进行测试。

        >>>cd ~/caffe/matlab/demo/
        >>>im = imread('../../examples/images/cat.jpg');
        >>>[scores, maxlabel] = classification_demo(im, 0); #0是CPU版,1是GPU版的.
        #会发现有如下的错误,没有下载CaffeNet
        Error using classification_demo (line 81)
Please download CaffeNet from Model Zoo before you run this demo

这时需要下载CaffeNet模型,下载地址:http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel,将下载好的模型存放在home/user/caffe/models/bvlc_reference_caffenet文件夹下。接着编辑home/user/caffe/matlab/+caffe/Net.m文件夹下的Net.m文件。(如果不进行更改,matlab中执行scores = classification_demo(im, 0);会出错。参考

        #找到71行的那个函数
        function delete (self)
           if ~isempty(self.hNet_self)
             caffe_('delete_net', self.hNet_self);
      end
    end
    #改为
        function delete (self)
           if self.isvalid  
             caffe_('delete_net', self.hNet_self);
%          if ~isempty(self.hNet_self)
%            caffe_('delete_net', self.hNet_self);
      end
    end

至此,可以进行matlab加载caffe模型了。打开matlab,输入命令

        >>>clear
        >>>cd ~/caffe/matlab/demo/
        >>>im = imread('../../examples/images/cat.jpg');
        >>>scores = classification_demo(im, 0);
        #输出结果为
        Elapsed time is 0.083442 seconds.
        Elapsed time is 1.756974 seconds.
        Cleared 0 solvers and 1 stand-alone nets
        >>>[score, class] = max(scores);
        >>> [score,class]
        #输出结果为
        ans =

  1×2 single row vector

    0.2985  282.0000

此结果表明,matlab与caffe的配置成功连接。再测试,其他接口的完整性。
这里写图片描述

参考:https://blog.csdn.net/fangbinwei93/article/details/52865461
参考:https://blog.csdn.net/lanseyuansu/article/details/70937746
参考:https://blog.csdn.net/xiaojiajia007/article/details/72850247
参考:https://blog.csdn.net/baidu_28342107/article/details/82022342
参考:https://www.cnblogs.com/smartvessel/archive/2011/01/21/1940868.html
参考:https://blog.csdn.net/yuyantai1234/article/details/7701746

猜你喜欢

转载自blog.csdn.net/baidu_28342107/article/details/82533449