微软官方caffe之 matlab接口配置

本文详细介绍如何在Matlab环境中配置Caffe深度学习框架,包括修改配置文件、编译工程、解决常见错误等步骤,帮助读者顺利搭建实验环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

按照微软的官方地址配置可能会出现一个问题caffe_.mexw64找不到引用模块问题,或者在matlab里面压根找不到caffe_这个函数,下面会提到这两个问题。还是按照步骤来吧

【PS1】有GPU同样按照下述步骤,进行即可

【PS2】文章在matlab2013a、matlab2014a、matlab2015b中配置成功,但是在高版本或者更低版本情况下可能会出现问题

第一步

修改配置文件,使之支持matlab接口,修改两个地方,第一个是matlabsupport,第二个是matlabdir也就是你的matlab安装目录(对matlab桌面图标右键属性查看):




【PS】最近Microsoft 的github貌似更新了matcaffe中的caffe_.cpp文件,第十六行添加了对gpu/mxGPUArray.h的引用,可以在此步骤的IncludePath中添加MatlabDir,如下所示:

    <PropertyGroup Condition="'$(MatlabSupport)'=='true'">
        <MatlabDir>C:\Program Files\MATLAB\R2013a</MatlabDir>
        <LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath>
        <IncludePath>$(MatlabDir)\extern\include;<strong><span style="color:#ff0000;">$(MatlabDir)</span></strong>;$(IncludePath)</IncludePath>
    </PropertyGroup>

然后修改matcaffe中的第十六行#include"gpu/mxGPUArray.h"中修改为

#include<toolbox\distcomp\gpu\extern\include\gpu\mxGPUArray.h>

第二步

编译caffe文件夹里面的Windows里面的caffe.sln工程里面的matcaffe一项

【注】此时先选择release选项吧,别用debug了



第三步

使用release编译以后,在\Build\x64\Release下会生成一个matcaffe文件夹,重点要有下面画框的文件。


第四步

【此步是按照微软官方配置方法】这一步不会安装成功,不想看到这种出错情况不要直接跳入第五步,先通读一下第四步,然后除了路径和环境变量不用加,其余的该拷贝还是得拷贝~~~

首先将上一步生成的matcaffe加入matlab的路径中,直接在setpath里面设置


然后将release(如果你的caffe.sln是在Debug下生成的,就把Release换成Debug)加入系统变量path【手动copy进去就行了,我这里没加,因为我测试了一下貌似没啥效果,你们可以试试可以成功不】

【更新日志】在2016.10.18编译matlab2015b的接口,发现这一步还是必须的,详细看第六步。


最后运行这个demo


遇到的就是我说的找不到caffe_的问题了


接下来我把这个\Build\x64\Release\matcaffe\+caffe\private这个文件夹里面的东西全都拷贝到\matlab\+caffe\private覆盖,然后遇到下面问题


第五步

暴力解决它,把\Build\x64\Debug下的所有的链接文件也就是dll文件也拷贝到这个文件夹去,原文件在这里


拷贝到\matlab\+caffe\private以后是这样


【更新日志】在2016.10.18试了一下matlab 2015b,结果还是出现了

Invalid MEX-file 'E:\caffe-2015b\caffe-windows\matlab\+caffe\private\caffe_.mexw64': 找不到指
定的程序。

出错 caffe.set_mode_cpu (line 5)
caffe_('set_mode_cpu');

出错 classification_demo (line 70)
  caffe.set_mode_cpu();
然后试了许久才发现,还是需要在第四步中加入对应的matcaffe根目录,比如我在编译matlab2015b的caffe接口的时候使用了Debug模式(即生成的matcaffe存在于Debug目录下),那么我在环境变量中还是得添加E:\caffe-2015b\caffe-windows\Build\x64\Debug;,然后才解决了这个问题,比较奇怪的是,竟然在matlab2013a和matlab2015b下都能使用matlab/demo/classification.m了。不过解决了就是好事嘛~~

第六步

下载一下model文件放到caffe-master\models\bvlc_reference_caffenet文件夹下

下载地址  链接:http://pan.baidu.com/s/1geUv01l 密码:yp9p


标签文件如下

synset_words.txt地址:

链接:http://pan.baidu.com/s/1c24ty6W 密码:3z7y

测试一下效果,建立一个test.m测试文件,路径如下【忽视readlabel,我自己写的读文件,最后放到test.m里面了】

【最好在matlab里面加一下路径】




代码如下:

%参考http://www.aichengxu.com/view/2422137
clear
clc

im = imread('../../examples/images/cat.jpg');%读取图片
figure;imshow(im);%显示图片
[scores, maxlabel] = classification_demo(im, 0);%获取得分第二个参数0为CPU,1为GPU
maxlabel %查看最大标签是谁
figure;plot(scores);%画出得分情况
axis([0, 999, -0.1, 0.5]);%坐标轴范围
grid on %有网格

fid = fopen('synset_words.txt', 'r');
i=0;
while ~feof(fid)
    i=i+1;
    lin = fgetl(fid);
    lin = strtrim(lin);
    if(i==maxlabel)
        fprintf('the label of %d is %s\n',i,lin)
        break
    end
end

运行之,效果

22

楼主您好,我运行demo出现Please download CaffeNet from Model Zoo before you run this demo,这是什么情况呢?

2016-11-29 21:25 回复

回复dj_wyp:请仔细看第六步,及其对应路径

2016-11-29 21:46
21

太赞了

2016-11-21 11:43 回复
20

楼主,我的可以运行,已经没有你上面说的问题了,但是过一会,matlab就崩溃了,出现错误:Caught MathWorks::System::FatalException,楼主,这个要怎么解决呢?

2016-11-18 22:33 回复

回复micklexqg:成功运行但是matlab后来卡死?这个我还真没遇到过,我遇到是另一个奇怪的,我编译R-FCN的时候会在每次编译的时候,matlab需要重新启动,不然会卡住

2016-11-19 15:19
19

记录一下18楼的问题,使用的是matlab2016,最终换了一个版本的matlab解决问题

2016-10-28 11:13 回复

回复zb1165048017:博主,我的貌似也是运行到scores = net.forward(input_data);那个地方就卡死了,是和那个下载的模型有关系吗,如果不考虑这个demo的话,我这样是不是已经配置好caffe了,不会影响到使用吧?谢谢博主,顺便问下,这个问题找到解决方法了吗?

2016-11-19 11:09
18

载入已经训练好的模型怎么会出现这样的问题,我下载的是博主给的网盘模型
错误使用 CHECK (line 4)
invalid Net handle

出错 caffe.Net (line 38)
CHECK(is_valid_handle(hNet_net), 'invalid Net handle');

出错 caffe.get_net (line 28)
net = caffe.Net(hNet);

出错 caffe.Net (line 33)
self = caffe.get_net(varargin{:});

出错 classification_demo (line 84)
net = caffe.Net(net_model, net_weights, phase);

2016-10-26 17:17 回复

回复zhaocaoou1435:这个问题可以通过在matlab里,把\caffe-master\matlab\+caffe\private文件夹点开,再重新运行就可以了,兄弟反复试出来的啊!

2016-11-03 15:21

回复zhaocaoou1435:这个问题可以通过在matlab里,把\caffe-master\matlab\+caffe\private文件夹点开,再重新运行就可以了,兄弟反复试出来的啊!

2016-11-03 15:20

回复zhaocaoou1435:这个问题可以通过在matlab里,把\caffe-master\matlab\+caffe\private文件夹点开,再重新运行就可以了,兄弟反复试出来的啊!

2016-11-03 15:21

回复zhaocaoou1435:哎呀,这个问题久远前有人问过我,一时间忘记怎么解决的了,但是好像是一个非常小的细节问题

2016-10-26 20:31
17

想请教博主一下,一直找不mxGPUArray.h这个头文件的位置,matlab安装路径里也看了,但 toolbox也没有<toolbox\distcomp\gpu\extern\include\gpu\mxGPUArray.h>,于是配置matlab时就总出现下面的问题
错误 34 error C1083: 无法打开包括文件: “gpu/mxGPUArray.h”: No such file or directory E:\Compressive sensing\caffe-master\matlab\+caffe\private\caffe_.cpp 16 1 matcaffe

2016-10-06 12:44 回复

回复Cindy_g:你可以在matlab的路径下搜索文件mxGPUArray.h,你会发现它在matlab的gpu文件里面;找到后,把gpu文件夹复制到caffe_.cpp所在的目录下即可

2016-11-21 11:45

回复Cindy_g:额?你的matlab是什么版本的,我的2013a和2015a都有这个文件啊,分别在C:\Program Files\MATLAB\R2013a\toolbox\distcomp\gpu\extern\include\gpu和C:\Program Files\MATLAB\R2015b\toolbox\distcomp\gpu\extern\include\gpu下面,不行的话你在matlab安装目录下搜索一下这个头文件

2016-10-06 16:11
16

大神,我在classification_demo里面吧gpu设置为0程序就可以运行,设为1,matlab就直接出错结束程序了,请问您这是怎么回事,谢谢!

2016-09-23 09:34 回复

回复dapang1992:你好,我也遇到了这个问题,运行test.m的时候MATLAB会直接结束程序,请问你解决了吗?

2016-09-27 15:35

回复dapang1992:设置为1说明调用GPU,你看看你编译的版本是GPU还是CPU的

2016-09-23 10:15
15

博主您好,我也是遇到了步骤4中的问题,我用您的暴力方法还是不管用,还是出现了Error in caffe.set_mode_cpu (line 5)
caffe_('set_mode_gpu');
Error in classification_demo (line 70)
caffe.set_mode_gpu();
Error in test_demo (line 8)
[scores, maxlabel] = classification_demo(im, 1);%获取得分第二个参数0为CPU,1为GPU这个问题,我\Build\x64\Release路径添加到系统变量中,也没有用,怎么都没用,请问是什么原因啊,请指教

2016-09-21 17:44 回复

回复ainijingdan:1.把两个头文件直接加到matcaffe工程下面
mex.h 在 安装路径/matlab/extern/include里面
gpu/mxGPUArray.h 在安装路径/matlab/toolbox/distcomp/gpu/extern/include/gpu/mxGPUArray.h
2.再把上面两个的包含目录加进项目的配置属性,就应该没问题了


评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值