项目的需要,终究还是用到了深度学习,Caffe无疑是我这种菜鸟最好的入门平台,然鹅,事情并没有想象的那么简单!!!单是编译caffe的库就已经把我折腾得灰头土脸了,搜了很多caffe的编译教程,一步一步得去操作,没有一个编译通过的,起初是CMake不通过,不甘心,又花了两天时间逐个编译出caffe的依赖库,总算CMake通过了,生成vs编译工程后,总算可以Build了,各种语法错误,简直让人心力交瘁。用微软版的免依赖库版,也是各种编译错误。就在要放弃的时候,又重新开始尝试了一下,仔细分析了CMake过程中所报的错误,逐个解决,CMake通过!vs通过!Build通过!Install成功!欧耶!!!
还好没放弃,在此,将编译过程,以及遇到的问题和解决方案分享给大家,希望对各位能有所帮助!
1、环境准备
1.1 安装cuda(/cuda-downloads)。
1.2 安装cuDNN(/cudnn,需要注册,这里下载v5版,直接解压到安装目录即可,记得添加环境变量)。
1.3 安装python(/downloads/,这里安装的是python2.7)。
1.4 安装cmake(/download/,安装最新版本的即可)。
已经安装的直接跳到第二步!
2、下载源码包
下载window版本的caffe源码包(/BVLC/caffe/tree/windows)。
注意下载页面下方的Windows Setup项,如下图,可以按照这个要求准备环境。
3、CMake编译
将源码包拷贝到编译目录下(我用的是D:\Libraries\caffe),解压到当前目录。新建build_64文件夹作为CMake的编译目录,新建msvc_64作为安装目录。
打卡CMake,分别添加源文件目录和编译目录。Configure,选择Visual Studio 12 Win64作为生成工具。finish,报错(如果没有报错直接跳过即可),如下:
肿么办,不着急,仔细看出错的原因,是在向C:\Users\Administrator\.caffe\dependencies\download\中下载以依赖库libraries_v120_x64_py27_1.1.0.tar.bz2时出错,再看出错的位置,位于打源文件cmake文件夹下的WindowsDownloadPrebuiltDependencies.cmake文件,打开如下:
第6行给出了下载依赖库libraries_v120_x64_py27_1.1.0.tar.bz2的位置,即(/willyd/caffe-builder/releases),如下图所示,选择对应的依赖库。
将下载的依赖库libraries_v120_x64_py27_1.1.0.tar.bz2拷到C:\Users\Administrator\.caffe\dependencies\download\路径下。同时修改WindowsDownloadPrebuiltDependencies.cmake文件,将下载命令部分(即58-79行)注释掉,并保存。
继续Configure,依然会报错,如下:
不过这个不是什么大问题,只要将Atlas_BLAS的相关路径添加进来即可。继续configure,OK通过。
将CMAKE_INSTALL_PREFIX目录设为此前新建的文件夹msvc_64的绝对路径,作为安装目录,继续Configure,再Generator。
4、VS编译与安装
generate成功以后,在build_64文件夹下,会生成如下众多文件,打开Caffe.sln。
分别在Debug和Release环境下,先BUILD->Build Solution,再将INSTALL设为启动项,BUILD->Project Only->Build Only Install。
编译安装成功,在msvc_64文件夹下,会看到如下文件夹:
5、环境配置
5.1 在VS中的配置
首先,设置环境变变量,将安装文件夹下的bin文件夹目录添加到环境变量路径中。
然后,在编译文件夹下添加caffe.props文件(具体位置和名称可以根据需要设定),并向该文件中添加如下内容(主要是头文件和静态库),保存。在vs中使用时caffe时,只需要将改文件添加到工程的property manager中即可。
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="/developer/msbuild/"> <ImportGroup Label="PropertySheets" /> <PropertyGroup Label="UserMacros" /> <PropertyGroup> <IncludePath>D:\Libraries\caffe\msvc_64\include;$(IncludePath)</IncludePath> <LibraryPath Condition="'$(Platform)'=='X64'">D:\Libraries\caffe\msvc_64\lib;$(LibraryPath)</LibraryPath> </PropertyGroup> <ItemDefinitionGroup> <Link Condition="'$(Configuration)'=='Debug'"> <AdditionalDependencies>caffe-d.lib;caffeproto-d.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> <Link Condition="'$(Configuration)'=='Release'"> <AdditionalDependencies>caffe.lib;caffeproto.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemGroup /> </Project>
5.2 在python2.7中的配置
编译完成后,将源文件夹caffe-windows下python文件夹中的caffe文件夹(里面含有_caffe.pyd)整体拷贝到python安装目录(如C:\Python27)下的\Lib\site-packages文件夹中,即可。
最后,编译的过程中遇到问题,欢迎提出和分享~
.07.15