内容简介: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.
资源我已经分享在 我的百度网盘 ,下载安装即可
进行配置:
我们的目的很清楚:快速,少出问题。基于这个目的,我这里提供最傻瓜式的过程
-
去 这个csdn资源 下载,这个Caffe里面有很多的lib,是已经编译好了的Caffe
-
去 原作者git 下载原作者的Caffe
为什么要下载两个Caffe工程呢?因为1中的Caffe虽然是编号的,有各种lib和include的,但是没有%caffe_pathcaffebuildMSVCmex这个工程,这个工程用来编译Matlab接口的。所以,下载2的caffe就是要这个工程文件。
-
将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接口
- Mac 下编译 Hadoop
- Mac下编译libcurl静态库
- 在centos环境下编译安装myrocksdb
- Windows下编译 Hadoop-2.9.2
- 在Windows下编译Hadoop源码的方法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Django 1.0 Template Development
Scott Newman / Packt / 2008 / 24.99
Django is a high-level Python web application framework designed to support the rapid development of dynamic websites, web applications, and web services. Getting the most out of its template system a......一起来看看 《Django 1.0 Template Development》 这本书的介绍吧!