这里介绍一下 Win10 下,如何搭建 Caffe,仅有 CPU。因为我需要用 MATLAB 调试,所以需要对 Caffe 做关于 MATLAB 的配置。很多博客都写了有关这方面的配置过程,写的也很好,但对于我这种初学者可能还不够细。我就想写一个特别细致的配置过程。但太细又会显得很长很复杂,所以将这个配置过程分为两部分:
Win10 + Caffe + CPU + MATLAB (包括各种问题详细解决)(一) —— VS2013 端设置
(一)是在 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 添加到系统环境变量
即把 \caffe-master\Build\x64\Release\matcaffe\ 添加到系统环境变量中。具体操作如下:
注意!!!保存后,重启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 文件
这里 model 文件是指 bvlc_reference_caffenet.caffemodel 文件。这里提供文件的下载链接:
https://download.csdn.net/download/u014546828/10436920
2.5 配置标签文件
这里标签文件是指 synset_words.txt,放在与classification_demo.m同一个文件夹下,即 \caffe-master\matlab\demo\ 下。
这里提供文件的下载链接:
https://download.csdn.net/download/u014546828/10436931
配置完毕。
3. 问题解决
按照上面的方法配置,一般就把问题解决了。当然,本节将列出一些可能出现的问题,有些问题其实前面的步骤以及可以解决这些问题了。可能在你运行代码时,还会出现一些错误。
3.1 Undefined variable "caffe" or class "caffe.reset_all" 问题解决
这个问题主要原因在于 Caffe 的路径没能有效被 MATLAB 链接。只要按照 2.1 、 2.2 还有 2.3 完成路径配置和文件复制,就好了。
3.2 Invalid MEX-file' ..\caffe-master\Build\x64\Release\matcaffe\+caffe\private\caffe_.mexw64': 找不到指定的模块 问题解决
这个问题主要原因在于 Caffe 的路径没能有效被 MATLAB 链接。只要按照 2.1 和 2.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加速模式
在没有 GPU 时,只能用 CPU:
caffe.set_mode_cpu(); %CPU加速模式最后感谢如下博文和回答:
https://blog.csdn.net/u011995719/article/details/53994570
https://www.cnblogs.com/njust-ycc/p/5776286.html
https://download.csdn.net/download/xyyhlark01/10293752