前言

 最近项目需要用到caffe这个框架,所以试着配置。由于绝大多数的教程都是基于Linux环境的,所以对于Window的用户来说教程比较少。几经波折以后,终于配置成功,我把配置的重点步骤记录下来。

准备

  1. python2.7

  2. VisualStudio2013

  3. caffe 下载地址: https://github.com/Microsoft/...

 下载以后会得到一个叫作caffe-master.zip的包,把它解压到出来。会得到如下的目录:

clipboard.png

这是其中的一部分。

配置文件的设置

 在./caffe-master/windows/路径下找到CommonSettings.props.example文件。打开这个文件,并且进行设置。

clipboard.png

 <PythonSupport>true</PythonSupport>这个标签必须把它写成true。以上是我的配置参数。至于上面三个标签是根据自己的需要设定的。这里我选择只用cpu,如果用到CuDNN的话必须提前下载,还必须把Cuda的版本号写对。
 设置好了以后记得保存,然后回到./caffe-master/windows/中。接下来我们还需要把之前已经设置好的CommonSettings.props.example文件拷贝一份在./caffe-master/windows/中,然后将拷贝后的文件更名为CommonSettings.props。然后右键CommonSettings.props.example选择"Build"(中文应该是“生成”)。

编译项目

 继续在./caffe-master/windows/中,找到Caffe.sln这个文件,用VS2013打开。

clipboard.png

 打开以后会出现以下界面

clipboard.png

 需要留意的地方有两个,在中间下拉菜单旋转"Release",看看是否有16个项目。然后找到libcaffe这一个项目,右键→“属性”

clipboard.png

clipboard.png

 在"configuration Properties"目录下找到"C/C++",将“Treat Warnings Aa Errors”调成“NO(/WX-)”。因为在编译libcaffe的过程中可能会出现一下报警,这些报警的级别太高,会被误认为错误。

 留意上面的"Additional Include Directories",把python安装路径下的"include"文件夹的路径填上去,这里要根据各人的地址来填写。我的地址是E:/python/include。写完以后及得用;隔开。

 然后,接着配置caffe项目的属性

clipboard.png

 在"C/C++"选项中找到"Additional Include Directories",把python的include文件的路径添加进去,例如:E:/python/include。

 然后,同样是caffe项目下的属性,选择Linker(连接器),选择"Additional Library Directories"(附加库目录),把python的libs的路径添加进去。例如:"E:/python/libs"

clipboard.png

 然后我们找到pycaffe这个项目,像上述操作一样找到"C/C++"选项中的"Additional Include Directories",这次需要添加的不止python的include路径,还有numpy的include路径,格式分别是:“E:/python/include”和"E:/python/Lib/site-packages/numpy/core/include"。记得用;隔开

 继续是pycaffe项目,像上述操作一样找到Linker(连接器),选择"Additional Library Directories"(附加库目录),把python的libs的路径和numpy的lib路径添加进去。格式分别是:“E:/python/libs”和"E:/python/Lib/site-packages/numpy/core/lib"。记得用;隔开。

 接下来生成这16个项目,右键Solution'Caffe'选择"Build"(生成)

clipboard.png

 时间可能花10到20分钟,如果最后显示生成16个项目成功的话就真的成功编译了。不过很多人可能会出现找不到"python27.lib"这个错误,因为我们上述的操作没有逐个逐个地把python的libs的路径添加到"Additional Library Directories"(附加库目录),编译的时候哪个项目报出错误,就在哪个项目的"Additional Library Directories"(附加库目录)添加libs的路径。

 此外,还有可能遇到找不到python27_d.lib这个错误,最简单的解决方法就是把python27.lib拷贝一份,然后更名为python27_d.lib。

 假设我们都已经编译完成了,在./caffe-master/Build/x64/Release的目录下,看看能不能找到caffe.exe文件,找到的话编译就成功了。

clipboard.png

 把./caffe-master/Build/x64/Release/pycaffe目录下的caffe文件夹拷贝到python的Lib目录下,并将这个路径添加到系统变量。

测试

 完成上述操作以后,开始检验能否在python中导入caffe。在dos窗口中输入测试,让我们尝试import caffe,出现如下界面 证明配置成功了。

clipboard.png

可能遇到的问题

 上述操作一次成功的朋友这一段可以忽略。配置caffe的过程中可能出现各种意想不到的错误,每一个人出现的情况可能都不一样。之前介绍的步骤为基础步骤,以下说一下我在配置的时候遇到的难题。

Decode error - output not utf-8:
 这个错误是因为Sublime的编码问题造成的,具体解决方法可以参考这里

激活上下文生成失败:
在导入caffe的时候,python报出这个错误。这个错误其实就是SideBySide ID59,网上传闻是由于计算机进行格式化或删除分区后,导致隐含文件消失而产生错误。正好我在安装VS2013之前进行过分区。
 解决的方法比较暴力,就是卸载VS2013再重装,然后将之前介绍的操作重做一遍。卸载和重装VS2013都十分麻烦,而且稍有不慎就会造成卸载后无法重装。

No module named google.protobuf.internal:
 具体操作在这里,关键是能把protoc.exe文件拷贝到protobuf-master/python目录下,若编译失败,可以在网上直接找现成的protoc.exe文件。

参考

基于Windows10 x64+visual Studio2013+Python2.7.12环境下的Caffe配置学习

【caffe-Windows】微软官方caffe之 Python接口配置及图片生成实例

windows7下配置caffe+matlab2016 无GPU(详细教材)

使用 Sublime 工具时报Decode error - output not utf-8解决办法

Windows7上配置Python Protobuf 操作步骤


nothingCheung
11 声望3 粉丝