Caffe 是一个深度学习的框架
官方原始配置是没有windows的
经过几天的尝试,和网上各种资料的查找,终于可以编译运行matlab的版本了。
下面我将具体过程说下:
我搭建的环境是在win7、 64位、Matlab 2013b、CUDA为6.5 上编译的,大家可以参考这个配置进行安装。
CUDA 6.5 可以在 http://pan.baidu.com/s/1ntsXl3N 上面下载安装,具体安装过程可以参考http://blog.csdn.net/yeyang911/article/details/17450963。
过程1.去http://download.csdn.net/detail/yangkequn/8108035下载,这个Caffe里面有很多的lib,是已经编译好了的Caffe2.去https://github.com/niuzhiheng/caffe下载原作者的Caffe为什么要下载两个Caffe工程呢?因为1中的Caffe虽然是编号的,有各种lib和include的,但是没有%caffe_path/caffe/build/MSVCmex(其中%caffe_path为自己的路径)这个工程,这个工程用来编译Matlab接口的。所以,下载2的caffe就是要这个工程文件。3.将MSVCmex这个工程复制到1中的caffe/build里面,用VS2012打开工程,直接运行发现不能编译。修改如下用editplus打开matcaffe.vcxproj中,把里面所有的cuda6.0改成cuda6.5,之后把其中所有的C:/programme/matlab改为你自己的matlab地址。保存。当然部分路径还是需要根据自己的情况全部修改。
当然我还碰到的问题是:
在vs2012的工程中,matcaffe.cpp 中 的 这一行init_key = random(); // NOLINT(caffe/random_fn)编译过程中出错了,
我就改成了init_key = rand(); // NOLINT(caffe/random_fn) 就可以正常编译了。
还有一个问题是:CUDA编译报错问题:error MSB3721
这个是因为编译的路径中存在中文路径,只需要把中文路径改成英文路径即可。
最后一个问题是:编译完成后需要将caffe-windows\bin中所有的dll 放到matlab\caffe中,编译完成后并没有把所有的dll都移入。
编译完成后:测试
进入matlab2013b,cd到caffe/matlab/caffe,输入im = imread('peppers.png');
[scores, maxlabel] = matcaffe_demo(im,1);
如果提示错误,可能是在examples/imagent没有训练集文件caffe_reference_imagenet_model,网上能够下载到。