这里介绍一下 Win10 下,如何搭建 Caffe,仅有 CPU。因为我需要用 MATLAB 调试,所以需要对 Caffe 做关于 MATLAB 的配置。很多博客都写了有关这方面的配置过程,写的也很好,但对于我这种初学者可能还不够细。我就想写一个特别细致的配置过程。但太细又会显得很长很复杂,所以将这个配置过程分为两部分:
(一)是在 VS2013 端的设置,及相关问题解决;
Win10 + Caffe + CPU + MATLAB (包括各种问题详细解决)(二) ―― MATLAB 端设置
(二)是在 MATLAB 端的设置,及其相关问题解决;
Win10 + Caffe + CPU + MATLAB (包括各种问题详细解决)
(二―― MATLAB 端设置
1. VS2013 端相关配置
上一文我们已经在 VS2013 端做了相关配置。这里再简单回顾和强调一下关于 MATLAB 调用 Caffe 时,在 VS2013 端的设置。主要包括:
1)打开\caffe-master\windows下的CommonSettings.props文件,更改MatlabSupport,改成true(即支持Matlab接口),如下图;
2)更改matlab的路径,在includepath中增加一个路径,若没有的话,在编译时候会出现如下错误:gpu/mxGPUArray.h" Not Found,如下图:
这两点如果有不理解的地方,可以参考我的博文(一)。
3)注意务必用 Release 方式生成解决方案 !
2. MATLAB 端相关配置
2.1 打开 MATLAB,添加 Caffe 路径。
主要是添加 \caffe-master\Build\x64\Release\matcaffe\ 这个文件的路径。如下图:
2.2 添加到系统环境变量
添加到系统环境变量中。具体操作如下:
注意!!!保存后,重启matlab,不然测试时会报找不到caffe_mexw64模块的错误。
2.3 .dll 文件复制
很多博文都推荐将 caffe-master\Build\x64\Debug 中所有的 .dll 文件全复制到 caffe-master\matlab\+caffe\private\ 中去,原因是为了防止出现 Undefined variable "caffe" or class "caffe.reset_all" 报错。
我也出现这个错误了,所以建议这么操作一下。
2.4 配置 model 文件
bvlc_reference_caffenet.caffemodel 文件。这里提供文件的下载链接:
2.5 配置标签文件
,放在与classification_demo.m
这里提供文件的下载链接:
配置完毕。
3. 问题解决
按照上面的方法配置,一般就把问题解决了。当然,本节将列出一些可能出现的问题,有些问题其实前面的步骤以及可以解决这些问题了。可能在你运行代码时,还会出现一些错误。
Undefined variable "caffe" or class "caffe.reset_all" 问题解决
这个问题主要原因在于 Caffe 的路径没能有效被 MATLAB 链接。只要按照 2.12.22.3 完成路径配置和文件复制,就好了。
Invalid MEX-file' ..\caffe-master\Build\x64\Release\matcaffe\+caffe\private\caffe_.mexw64': 找不到指定的模块 问题解决
2.12.2
3.3 错误使用 caffe_ Could not open file Model/xxx.prototxt (或者是 RuntimeError: Could not open file xxx.prototxt) 问题解决
这是因为你的 xxx.prototxt 文件的路径没写清楚,如下图所示:
这样的书写,MATLAB 还找不到根目录,最直接的方法就是补全完整路径,如下图:
正确:
model='F:/1_MyWork/Papers/STS-CNN-master/Model/STS-CNN_SLCOff_iterations_900000.caffemodel';
错误:
model='F:\1_MyWork\Papers\STS-CNN-master\Model\STS-CNN_SLCOff_iterations_900000.caffemodel';
3.4 matlab直接错误退出问题
原因在于没有 GPU 的情况下,用了 GPU 调用语句:
caffe.set_mode_gpu();
在没有 GPU 时,只能用 CPU:caffe.set_mode_cpu();