Windows下编译Caffe并编译Matlab接口

栏目: 编程工具 · 发布时间: 6年前

内容简介:Windows下编译Caffe并编译Matlab接口

介绍:

Caffe是一个深度学习的框架,在windows下编译Caffe。

实际上 Linux 下会更舒服,由于我的Linux下安装不了CUDA,只能用CPU跑,很慢,于是决定在windows环境下配置caffe及其matlab接口

系统环境:

Windows 64bit

VS2012

MATLAB2013A

CUDA6.5

安装CUDA:

官网的CUDA已经是7.0了,为了尽可能减少出现的问题,我们就跟作者大大同步,用cuda6.5.

资源我已经分享在 我的百度网盘 ,下载安装即可

进行配置:

我们的目的很清楚:快速,少出问题。基于这个目的,我这里提供最傻瓜式的过程

  1. 这个csdn资源 下载,这个Caffe里面有很多的lib,是已经编译好了的Caffe

  2. 原作者git 下载原作者的Caffe

    为什么要下载两个Caffe工程呢?因为1中的Caffe虽然是编号的,有各种lib和include的,但是没有%caffe_pathcaffebuildMSVCmex这个工程,这个工程用来编译Matlab接口的。所以,下载2的caffe就是要这个工程文件。

  3. 将MSVCmex这个工程复制到1中的caffebuild里面,用VS2012打开工程,直接运行发现不能编译。修改如下

    用editplus打开matcaffe.vcxproj中,把里面所有的cuda6.0改成cuda6.5,之后把其中所有的C:programmematlab改为你自己的matlab地址。保存。

操作:

编译好之后得到mex文件,这是类似于C++工程的dll文件,是matlab的动态链接库(姑且这么理解),进入matlab2013a,cd到caffematlabcaffe,输入

im = imread('peppers.png');
    [scores, maxlabel] = matcaffe_demo(im,1);

如果提示错误,可能是在examplesimagent没有训练集文件caffe_reference_imagenet_model,网上有相关文件,不再多说。

至于 python 接口编译我认为与此原理类似,使用这个工程改路径,可能最终生成dll改为pyd然后import caffe。还没有试,仅提供这种思路。

原csdn上面评论和一些答复:

QA1:

qq1005896486 2015-04-24 16:55发表:

博主,你说编译MSVCmex生成mex文件,可是据我观察,在此文件夹的/bin文件下已经存在一个caffe.mex文件了呢,怎么还需要生成呢?生成的mex的文件名称是什么?谢谢

Re: Jungieve 2015-04-24 19:01发表

回复qq1005896486:/bin确实有一个mex,我试过,用不了。

我个人揣测,是原作者自己配置成功好的mex文件,但是它的CUDA版本和matlab路径跟我们不一样,所以直接拿来肯定是用不了的。所以需要自己编译一个适用于自己cuda版本的mex。

mex就是dll文件,即使mex路径配置不对也可能编译出来mex文件,即caffe.mex,但是最后调用时候肯定会出现“mexw64找不到指定的模块".谢谢

QA2:

chriszdm 2015-05-11 20:53发表:

你好,改了cuda和matlab设置,编译成功后,调用时找不到指定模块,我想问一下编译的时候,项目属性有哪些设置的。

Re: Jungieve 2015-05-12 20:03发表:

回复chriszdm:你好,首先在编译caffemat之前,最好是将CaffeRoot/bin下面的所有dll全部复制到CaffeRoot/matlab/caffe里面

Re: chriszdm 2015-05-12 21:13发表:

回复Jungieve:OK了,非常感谢。

QA3:

queen_wangner 2015-07-23 19:31发表:

你好,我编译运行的时候,生成出错了,提示

....matlabcaffematcaffe.cpp(275): error C3861: “random”: 找不到标识符

‘init_key = random(); ‘

这个地方出错了,怎么办呀

Re: Jungieve 2015-07-26 18:10发表:

回复queen_wangner:你好,可能是你的cuda版本与VS版本对应不上。random()找不到一般为cuda正确加载。


以上所述就是小编给大家介绍的《Windows下编译Caffe并编译Matlab接口》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

若为自由故

若为自由故

[美] Sam Williams / 邓楠、李凡希 / 人民邮电出版社 / 2015-4 / 49

理查德·马修·斯托曼(Richard Matthew Stallman,简称RMS)是自由软件之父,他是自由软件运动的精神领袖、GNU计划以及自由软件基金会的创立者。作为一个著名的黑客,他的主要成就包括Emacs及后来的GNU Emacs、GNU C 编译器及GDB 调试器。他编写的GNU通用公共许可证(GNU GPL)是世上最广为采用的自由软件许可证,为copyleft观念开拓出一条崭新的道路。......一起来看看 《若为自由故》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器