Windows系统下VS2013+caffe的安装

来源:互联网 发布:租赁网络平台 编辑:程序博客网 时间:2024/04/24 11:33

笔者作为一名深度学习小白,今日开始打算入门caffe框架。而caffe的安装过程没想到出现各种问题,虽参考众多博客,均未完美解决,故集众家所长,贴上一文,希望帮助和我一样的新手。笔者环境为win10+vs2013。本文尤其感谢http://blog.csdn.net/tina_ttl/article/details/51722983,并在此基础上略有补充。
其实win7,win8,win10系统均可,而vs建议2013版本,笔者在vs2015版上未安装成功,而众多博主大多也反应vs2015安装问题众多。

一. 安装文件准备
1.1 visual studio 2013安装
1.2 CUDA8.0下载 https://developer.nvidia.com/cuda-toolkit-archive
笔者此时(2016/10/8)仅能在官网下载Cuda8.0,故不采用其他诸如6.5,7.0,7.5之类的老版本。
1.3 windows版本caffe下载 https://github.com/Microsoft/caffe
此版本为微软官方制作版本,推荐!
1.4 cuDNN下载 https://developer.nvidia.com/cudnn
这里为笔者所用为CuDNNv5,在官网需要注册邮箱才能下载
1.5 Python2.7安装
1.6 Matlab安装 笔者所用为2014a版本

二. 第一步完成的话,vs2013、Python2.7、MATLAB、CUDA8.0想必以安装好,而caffe和cudnn下载 文件解压后会是两个文件夹caffe-master和cuda,笔者解压在D:\Program Files\caffe路径中。接下来,打开caffe-master文件夹,然后看到一个windows文件夹,然后继续打开windows文件夹,看到里面一个CommonSettings.props.example文件,复制一份,并改名字为CommonSettings.props。
这里写图片描述
然后用VS2013打开Caffe.sln(就到刚刚那个文件夹里面),准备修改配置文件。

三.打开CommenSetting.probs.即配置文件。
这里写图片描述
例子中所有配置参数都是默认值

CpuOnlyBuild:是否使用CPU

默认值为False(即使用GPU编译)
如果本机没有配置好CUDA,那么,该值应该赋值为True;
如果本机已经配置好CUDA,并且需要编译CUDA版本的caffe,那么,该值应该赋值为True、
UseCuDNN:是否使用CuDNN

默认值为True;
如果本机没有配置好CUDA,那么,该值应该赋值为False;
注意:CpuOnlyBuild和CuDNN不能同时为True;
如果这里设置为True,那么还需要对赋值,即下载的CuDNN的路径
CudaVersion:CUDA的版本

PythonSupport:是否支持python

默认值为False,即后续不编译pycaffe;
如果需要编译pycaffe,那么该值设置为True
如果这里设置为true,那么还需要对 C:\Miniconda2\赋值
上面的值是默认的,应该修改为本机的python安装路径,也就是python.exe所在路径,例如,本机安装的python,路径如下:D:\Program Files\Python27,那么,应该令 D:\Program Files\Python27

MatlabSupport:是否支持matlab

默认值为False;
如果需要编译matcaffe,那么该值设置为True
如果该值设置为true,那么还需要对C:\Program Files\MATLAB\R2014b进行赋值:
上面的路径是默认的,需要更改为本机的matlab安装目录,例如,本机的matlab安装路径如下:D:\Program Files\Matlab 2014a\setup,那么,D:\Program Files\Matlab 2014a\setup

注:对cuDNN路径的配置有两种方案:
- 方案1:将cuDNN v4的压缩包内的bin、include、lib中的文件分别放置在%CUDA_PATH% (即cuda的安装路径)的相应目录中
- 方案2:将 .\windows\CommonSettings.props文件中的CuDnnPath设置为该解压缩路径,例如,将cuDNN解压后文件放置在D:\Program Files\caffe\cuda中,那么,在CommonSettings.props中,令D:\Program Files\caffe\cuda,即上面提到的方法。

四.编译caffe,特别注意项目的编译顺序!(笔者觉得debug或release均可)
编译前先加入如下一步
这里写图片描述
1、首先编译libcaffe项目(其他的项目依赖于libcaffe项目)。会还原NuGet包,即从网络下载编译需要的各种依赖包,经过一段时间等待后,编译成功 。
这里可能会出现几个问题:
(1)编译过程中,可能会出现错误。提示“error C2220: 警告被视为错误 - 没有生成“object”文件”,这是由于微软NuGet回来的boost库中的format\alt_sstream_impl.hpp文件编码格式导致的,只需要双击错误打开该文件并保存,再编译就顺利通过了。
(2)caffe编译过程中,需要一些依赖包,在有网络的情况下,当编译第一个项目libcaffe时,程序会自动从网路下载这些依赖包,下载到与caffe-windows文件夹同级的NugetPackages文件夹中,但在没有网络情况下,需要事先将这些依赖包下载好,并将它们的路径在vs的管理NuGet程序包中进行设置:工具->选项->NuGet Package Manager->程序包源->利用右侧的加号添加本地的package 。手动添加这些package地址后,还需要手动对这些NuGet Package进行安装 。
2、编译caffe项目
3、编译pycaffe。笔者在编译时提示缺少python27_d.lib,这时可以将Python安装目录libs文件夹中的python27.lib复制一份,重命名为python27_d.lib即可。再修改Python安装目录include文件夹中的pyconfig.h文件,将#define Py_DEBUG一行注释掉。
4、编译matcaffe。笔者在编译时提示找不到”gpu/mxGPUArray.h”,此时在,在MATLAB中搜索才发现,这个头文件在D:\Program Files\Matlab 2014a\setup\toolbox\distcomp\gpu\extern\include路径下,而matcaffe并不包含该路径,故在右键属性—VC++目录—-包含目录中手动添加该路径,编译成功。
5、编译其他项目
接下来,再依次编译其他项目,同样的方法
classification:用来分类
compute_image_mean:计算均值
convert_cifar_dat:对cifat数据集进行转换
convert_mnist_data:对mnist数据集进行转换

五、运行caffe.cpp,直接双击打开caffe.cpp,然后ctrl+f5直接编译,出现如下命令窗口说明编译成功
这里写图片描述

至此,vs2013+cudnn+微软官方移植caffe已经编译成功!
笔者也试过另外一种方案,用大神制作的Windows-caffe包,内含第三方库,无需自己下载cudnn ,虽然省事,但是笔者并未在此方案下编译成功,若有兴趣的朋友可以尝试此方案,方法如此http://blog.csdn.net/muyouhang/article/details/50688038。

接下来,就可以开始真正学习caffe框架咯~~~

0 0
原创粉丝点击