参考文章
Caffe初体验之Caffe-Windows的配置(CPU/GPU)与Mnist数据集测试
windows下配置caffe教程及常见错误(win10 +CPU + python + pycharm)
一、环境说明
操作系统:windows7, 64位
IDE编译环境:vs2013(官方推荐vs2015及以上版本,博主强烈推荐vs2015版本,否则后面有很多坑等着你)
caffe-windows源码下载地址:https://github.com/BVLC/caffe
虚拟环境:Anaconda3.5(推荐使用虚拟环境,避免环境混乱)
二、下载caffe并配置
(1)github下载caffe
注意要下载windows上的分支
caffe主分支地址:https://github.com/BVLC/caffe
windows分支下载地址:https://codeload.github.com/BVLC/caffe/zip/windows
(2)配置caffe
解压得到caffe-windows目录下
注意,如果目录结构中没有windows这个文件夹,说明当前github中的caffe源码进行了迭代升级,需要用新的方法进行配置和cmake编译,具体方案请看文章末尾
把caffe-windows\windows目录下面的CommonSettings.props.example文件拷贝一份,改名为CommonSettings.props
修改配置文件:
由于是CUP-only模式,所以设置<CpuOnlyBuild>true</CpuOnlyBuild>
支持python,设置 <PythonSupport>true</PythonSupport>
其他的不支持,则设为false
设置python解释器的位置,我用Anaconda创建了一个叫Caffe的虚拟环境,我用该虚拟环境中的python解释器,关于windows下如何使用Anaconda,请参考博客 Anaconda3在windows下的安装与简单使用
三、下载安装vs2013并配置
(1)vs2013下载安装过程自行百度,直接开始配置vs2013
caffe-windows\windows\Caffe.sln,用vs2013打开
勾选【当前选定内容】,先编译libcaffe,下次需要编译caffe、pycaffe等其他15个项目的时候,只有鼠标右键生成编译即可,很方便
将编译过程中出现的警告视为错误,选择"否" ,如果不设置的话在编译boost库的时候会由于文字编码的警告而报错
配置选"活动(release)"。说明:如果编译的是debug版本,则会输出调试信息,程序不会做任何优化。如果编译release版本,调试信息就没有了,代码会进行优化,运行快。
四、编译caffe源文件
生成解决方案
第一次编译的时候,会下载很多依赖的包。依赖包好像有1G多,过程比较慢,请耐心等待,中途不可以强制关闭编译程序,否则会出现意外
caffe-windows\windows\libcaffe\packages.config 中的依赖包,编译过程中会自动下载
终于,编译成功
进入Build目录,到caffe-windows\Build\x64\Release,里面有很多exe的执行文件。这些执行文件,以后有一些会用到。cmd打开终端,运行有如下结果,说明caffe编译成功。
编译之前的caffe源码caffe-windows文件只有8M多,编译之后有1G多
五、配置python接口
参考博客 【caffe-Windows】微软官方caffe之 Python接口配置及图片生成实例
(1)编译caffe
编译方式如上面编译libcaffe是一样的,不过由于之前配置好了,现在只要选中 caffe 项目,右键 --> 【生成】,即可开始编译
出现了一点小意外,编译失败了
编译失败原因:caffe只支持python2.7 和python3.5,而Anaconda虚拟环境中是python3.6,所以编译caffe会出错
解决方案:
参考博客
VS2015尝试编译Caffe,缺失python27.lib
Caffe-Windows + Anaconda3编译Caffe的python接口
该博客给我提供了很好的思路,但是当我尝试去修改配置的时候,又是一个新的bug,为此,我换了另外一个类似的解决方案,可以解决我的问题
大体思路就是换成python2.7版本的解释器,用 Anaconda Prompt 终端,新建一个Anaconda虚拟环境,命名为py27,指定python2.7版本
创建一个Anaconda虚拟环境
>> conda create -n py27 python=2.7
进入py27这虚拟环境,导入anaconda所有库,不然等一下编译libcaffe、caffe、pycaffe等一些项目的时候会报错
修改 caffe-windows\windows\CommonSettings.props 配置文件,将python支持的版本换成python2.7
选中caffe解决方案中的项目,右键生成即可开始编译
《1》重新编译libcaffe
《2》再编译caffe
《3》再编译pycaffe
到此为止,配置python接口的编译都完成了
在 caffe-windows\Build\x64\Release目录下,生成pycaffe的python接口,可以当作python的包使用
(2) 测试caffe.exe程序是否正常运行
错误原因,由于当前环境是py27,是python2.7版本,没有放在系统环境变量中,所以caffe.exe运行的时候找不到python27.dll
参考博客 找不到python27.dll问题
解决方法:将python27.dll加入到系统环境变量中即可
至此,caffe.exe成功运行
(3)将编译成功的caffe的python接口,当作包放入site-packages中
编译成功后,在caffe-windows\Build\x64\Release\pycaffe 目录下会生成caffe文件夹,将这个文件夹直接拷贝进Anaconda3\envs\py27\Lib\site-packages
打开python,输入import caffe,查看是否成功导入
参考博客 配置(二)—— win10 x64环境下配置caffe(包含python3.5接口)
错误原因:缺少 protobuf 这个包,安装即可
>> pip install protobuf
至此,windows(CPU-only)版的caffe总算安装成功,此处应该有掌声
六、可能遇到的问题
整个安装过程中bug比较多,以上安装中有相关的bug提示,以及bug的解决方案,在此就不再另外总结
(1)错误 5 error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, please install v140 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution..."
错误原因:当前的IDE是vs2013,对应的版本是v120,而vs2015对应的版本是v140。当前caffe源代码是基于vs2015开发的,对应的v140,所以低版本的vs编译高版本的代码会出现这个错误。
解决方案:
1) 把卸载当前的vs2013,换成vs2015(推荐使用)
2) 换一个适应vs2013版本的caffe源码,下载地址为:
我的解决方案是第二种方案,因为重新安装vs2015有点太麻烦了