图文讲解caffe配置(Windows官方版本+win7+VS2013)
终于搞定caffe了,但不得不说,过程很烦,很痛苦,在我看来,计算机或计算机专业真得是不要太蠢,没有一个统一性,不能解放相关科研人员或程序员,反而要生生耗费过度的时间和精力,不能使其专注于想做和该做的事情中。吐槽完了,接下来,是配置步骤:
Prerequisites or Requirements:
MATLAB+VS2013+Python。Matlab最好安装2014及以上版本。官方配置步骤中要用到NuGet Pack Maneger这个工具,这个工具主要是用来自动获取并安装项目所需要的第三方依赖库的,可在VS2013工具栏下的拓展和更新中搜索安装,具体可百度,这里非本文重点,不做细说。
对于Python,推荐安装Anaconda,其已经自带了很多工具包,不需要再去安装了(Theano还是要装的),简单方便,所以首选,最好Python2.7的。需要说一下的是Anaconda自带的那个Spyder IDE真得是不要太蠢,为了模仿MATLAB,但山寨得是在太渣,调试功能非常不方便,还有各种蛋疼,总之,用过了就知道,比MATLAB差十万八千里。所以对于IDE,还是装PyCharm吧,PyCharm也是可以用得上Anaconda自带的工具包的。总之,一切本着简单方便的原则。
Setup: 此版本为微软官方的caffe,下载地址,https://github.com/microsoft/caffe。
首先是配置CommonSettings.props文件,具体配置方法也可见readme.txt或上述链接。如下是我的配置截图:
如果电脑有带GTX显卡或支持GPU的,可将CpuOnlyBuild设为FALSE,如果没有就设为TRUE。至于CuDNN,由于本人非计算机专业,没用过这个,所以建议不懂的一般就设为FALSE好了,免得后面出什么状况。
如果要用到,把下载的压缩包解压到CUDA的安装路径中(我CUDA装的是8.0de),参见下图。
然后是MATLAB和python的配置,见截图,这些都是比较简单的。
记得,build的时候一律选择release和x64的(这句要写在前面)。然后单独编译MATLAB和Python的项目,即matcaffe和pycaffe,期间可能会产生错误。Matcaffe中会提示没有 "gpu/mxGPUArray.h",找到错误定位,将其改为绝对路径,我这里是
#include 。
有些可能还会有其他问题,暂时先不管,接下来编译libcaffe项目,如果都没有问题,那么恭喜你,最后直接右键编译整个解决方案就好了。
但有些会存在问题,我的就存在了关于opencv 2.4.10 overlay,targets啥啥啥的问题,真是蛋疼,反正是搞了一通,最后也不知道怎么搞好的。大概设置过如下地方:
然后重新编译libcaffe,如果还是有错误。哈哈,恭喜你,拼运气的时候到了,先编译整个解决方案(有错误先不管),之后再来编译libcaffe。如果还是有问题,那你就只能根据具体问题来百度了。
在编译好libcaffe之后,接下来就可以编译整个解决方案了。如果没有问题,caffe就编译好了。根据官方的步骤,如果要使用matlab和python的接口,如下设置。
MATLAB:
1. 将生成的matcaffe文件夹加入到matlab搜索路径中,如图示。
2. 将编译得到的release文件夹加入到环境变量中,我这里是
G:\caffe\caffe-windows\Build\x64\Release,如图示。
Python:
方法有两个,一是环境变量中新建名为PythonPath,值为
G:\caffe\caffe-master-MS\Build\x64\Release\pycaffe,如图示。
二是直接将
G:\caffe\caffe-master-MS\Build\x64\Release\pycaffe文件夹下的caffe文件夹复制到python的site-packge目录中,如图示。
两种方法,我都做了。
最后,重启电脑,就可以使用caffe及其matlab和python的接口了。
以matlab为例,使用matlab\demo\classification_demo.m进行测试。需要注意的是不要在该文件夹下运行classification_demo.m,要将其复制到其他目录下(否则会出现错误,单步调试发现matlab会在scores = net.forward(input_data)一行崩溃,所以,不要问为什么,只要照着这里的步骤做就是),这里以即根目录为例。将classification_demo.m复制到根目录之后,需要修改里面的文件路径,具体修改地方以及运行结果就不贴图了,可另下载代码。
如下为一示例代码的结果。
所需要的代码及文件,下载链接, http://download.csdn.net/detail/micklexqg/9687949,以及本文教程地址,http://download.csdn.net/detail/micklexqg/9687974 。
其中所需的参考model,参见models\bvlc_reference_caffenet下的readme,
http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel
最后不得不说,计算机这个专业真是太蠢了,太多杂乱的东西,没有一个统一性,需要无端浪费时间和精力,不够简洁,方便,不能让人专注于真正需要专注的事情上,总之,没有解放千千万万的程序员和科研人员,蠢,太蠢!怪不得都说又累又苦逼,哈哈,真得是啊,感觉入错行了,哭啊,哎,不说了,说多了都是泪啊!
2016年11月20日
sai