Windows下的深度学习框架配置之caffe篇

W

今天要分享的是,如何在windows环境下搭建深度学习框架caffe

需要准备的材料有,一个电脑(推荐安装有支持CUDA的GPU),Windows操作系统,VS2013,caffe压缩包,CUDNN 4/5,CUDA 7.5/8.0

这里需要说的是CUDNN和CUDA需要去英伟达CDUNN官网英伟达CUDA官网来下载,在下载时需要注册成为NVDIA Developer,然后填写一个用户调查问卷即可下载,截止本文发布时,caffe框架支持CUDNN 4/5,CUDA 8.0/7.5,不过在干这件事情的前提是你的GPU支持CUDA,如果不支持的话进行深度学习训练的时候速度会比较捉急

下面是正式步骤:

首先需要安装Windows操作系统。这里需要注意的是操作系统的选择,因为英伟达官网目前可下载的是CUDA8.0,因此需要按照CUDA支持的Windows来进行配置,CUDA8.0支持Windows 10、Windows 8.1、Windows 7、Windows Server 2008 R2、Windows Server 2012 R2。其他的Windows是没办法安装CUDA8.0的

Window安装完毕后,首先需要安装的就是VS2013,这里推荐的是VS2013旗舰版。VS的安装也很简单,不过多重复

VS安装完毕后,下面需要的就是安装CUDA,不论是7.5或者8.0甚至7.0都可以(不过貌似英伟达官网只有8.0),它会识别之前安装的VS自动进行插件的安装,因为是傻瓜式安装,不多啰嗦

CUDA安装完毕后我们就可以开始正式进行caffe的配置和编译工作了(当然这里也是本文的重点部分):

(很严肃的另起一行)

首先解压caffe压缩包,会看到类似下图的文件结构,找到windows文件夹,打开

会看到caffe的VS工程,我们首先要更改的就是这个工程的配置文件,下图中已经用红色框框标记出来了,将源文件备份,去掉后面的.example后缀,这个文件就是编译caffe框架的整个工程的配置文件

打开这个文件,文件中需要引起我们注意的地方已经用红色框框标记出来了

下面来解释一下各个参数:

BuildDir:编译文件的生成目录

CpuOnlyBuild:只是用CPU编译,默认为false不建议更改,如果你没有支持CUDA的显卡或者就是觉得自己CPU超级厉害可以改为true

UseCuDNN:是否使用CuDNN(CUDNN是英伟达公司出品的深度学习加速库)如果你的显卡支持CUDA请填true,否则请填false

CudaVersion:当前使用的CUDA版本,CUDA8.0请填写8.0不要写8

PythonSuppot、MatlabSupport:是否启用Python和Matlab支持,视个人需要更改

CuDnnPath:这里填写你的CUDNN库的绝对路径,这里CUDNN解压出来为一个cuda文件夹,Path默认是自动在你填写的路径后面增加\cuda\…..,因此cuda文件夹不需要填写,也不要删除cuda文件夹这层嵌套

OK,现在编译配置文件都已经设置好了,现在可以打开caffe.sln了

如果你的各项配置都正确的话,右侧的依赖库可以全部被正确加载,通常的问题是libcaffe、testall缺失,通常是因为CUDA没有正确配置,可能是版本号没有正确填写,或者是CUDA对VS的支持库没有正确安装

对于第二种情况,可以采用下面的方法:

vs2013的安装路径中缺少 CUDA 8.0.props ,我的是这个路径C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations

其实 CUDA 8.0.props 就在cuda的安装目录下,我的路径是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\visual_studio_integration\MSBuildExtensions

只要拷贝到C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations就行,那么libcaffe和testall就都没问题了!

接下来需要对caffe的这个项目进行设置,将红框框中的将警告视为错误选为

然后在VS的生成事件选项下的预先生成事件后期生成事件中的在生成中使用选为

接下来在下图所示的位置找到NuGet程序包管理器,按照下图进行设置(如果你已经下载了全部的依赖包可以忽略这一步,不过前提是依赖包的版权必须完全正确)

下图列出了截止文章发布时所有caffe的所需依赖包以及版本

依赖包准备完成后,就可以开始编译了,在编译的时候需要注意的是,编译模式是Release而不是DEBUG,平台选择X64

默认情况下是只编译libcaffe,可以在解决方案上点击右键,选择属性

在属性中选择启动项目,选择多启动项目,让多个项目同时编译,这个根据需要选择

接下来就可以开始编译了,编译的时候尽量不要操作计算机

如果编译的时候提示OpenCV的某个组件正在被其他占用,删除OpenCV组件然后让NuGet重新下载就可以解决

编译完成后我们会在caffe的文件夹下面得到一个Build文件夹,在其下的x64文件夹中打开Release文件夹就可看到编译好的caffe

打开caffe.exe时可能因为CuDnn配置的问题出现

这个时候只需要找到你下载的CUDNN库中的这个.dll复制到根目录就可以工作了

既然caffe已经编译完了,现在我们就进行一个caffe是否可以正常使用的测试

这里我们选用minst(下载地址2)作为测试,这里的minst我已经把测试数据和prototxt文件都设置好了,默认为GPU模式,如果你的计算机上没有支持CUDA的显卡请更改lenet_solver.prototxt文件中的solver_mode选项,将其改为CPU

接下来就需要把解压后的examples文件夹直接丢在caffe.exe的目录下面,然后新建一个bat文件(注意,如果文件夹名称不对,程序会提示文件不存在,然后崩溃)

然后出现下图就证明caffe可以正常工作了

可以看到第一张图列出了caffe的工作模式和prototxt的内容,第二张图的最后则给出了训练的结果

OK,至此caffe在windows上就可以正常运行了,然后就可以根据自己的需要蹂躏caffe源码了

第一次写这么长的文章还有点小激动0.0

About the author

NOBUG.IN

Add comment

By NOBUG.IN

Your sidebar area is currently empty. Hurry up and add some widgets.