您的位置:首页 > Web前端

windows7+visual studio 2013+CUDA7.5 编译caffe

2016-06-25 00:54 483 查看
经过朋友指导,终于成功在windows7上成功编译了caffe,这里将编译过程记录

安装文件准备

安装visual studio 2013

安装cuda75

编译caffe
1 解压缩下载的caffe-windows文件

2 进入到windows文件夹

3 复制配置文件并重命名

4 修改配置文件修改工程的属性文件

5 打开名称为Caffe的解决方案

6 编译libcaffe项目

7 编译caffe项目

8 编译其他项目

运行第一个caffe测试程序

配置cuDNN

配置python

配置matlab

1. 安装文件准备

visual studio 2013安装包下载

进入visual studio下载页

选择Visual Studio 2013–>Ultimate 2013版–>简体中文iso文件–>下载



CUDA7.5

下载地址为nvidia官网的cuda-toolkit-archive







windows版本caffe

下载地址为GitHub的caffe windows版本

一定要注意,brand那里选择windows



接下来,依次:安装visual studio 2013->安装cuda 7.5->编译caffe

2.安装visual studio 2013

具体安装方法见: 安装visual studio 2013

3.安装cuda7.5

安装方法与theano安装(二)windows安装visual studio 2010及cuda中的cuda安装方法一致,只不过是版本号不同而已

这里注意一个问题,cuda6.5之前的cuda版本,自带的D:\Program Files\NVIDIA Corporation\CUDA samples\v7.5\bin\win64\Debug中包含了可运行的exe程序,可用来测试,但cuda7.5却没有,需要自己编译,具体编译cuda方法可以参考相关博客

4.编译caffe

4.1 解压缩下载的caffe-windows文件

这里假设caffe-windows被解压到了如下的文件夹中



4.2 进入到windows文件夹



4.3 复制配置文件,并重命名

将该文件夹(即.\windows)下的CommonSettings.props.example文件复制一份儿,并将复制的文件命名为CommonSettings.props

-


4.4 修改配置文件(修改工程的属性文件)

caffe-windows自带的配置文件CommonSettings.props.example中所有配置参数都是默认值,例如:里面CUDA和cuDNN库是默认被要求用到的,cuDNN和CPU_ONLY两个只能二选一,Python和matlab是被默认false的,也就是不用,可以通过修改这个属性文件来个性化设置,主要需要修改下面的代码段(下面代码段来自CommonSettings.props.example,所有参数取值都为默认值)

<PropertyGroup Label="UserMacros">
<BuildDir>$(SolutionDir)..\Build</BuildDir>
<!--NOTE: CpuOnlyBuild and UseCuDNN flags can't be set at the same time.-->
<CpuOnlyBuild>false</CpuOnlyBuild>
<UseCuDNN>true</UseCuDNN>
<CudaVersion>7.5</CudaVersion>
<!-- NOTE: If Python support is enabled, PythonDir (below) needs to be
set to the root of your Python installation. If your Python installation
does not contain debug libraries, debug build will not work. -->
<PythonSupport>false</PythonSupport>
<!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to be
set to the root of your Matlab installation. -->
<MatlabSupport>false</MatlabSupport>
<CudaDependencies></CudaDependencies>

<!-- Set CUDA architecture suitable for your GPU.
Setting proper architecture is important to mimize your run and compile time. -->
<CudaArchitecture>compute_35,sm_35;compute_52,sm_52</CudaArchitecture>

<!-- CuDNN 3 and 4 are supported -->
<CuDnnPath></CuDnnPath>
<ScriptsDir>$(SolutionDir)\scripts</ScriptsDir>
</PropertyGroup>


下面,分别对上述代码中的各项参数进行说明:

(1)CpuOnlyBuild:是否使用CPU,默认值为False,即使用GPU编译;如果本机没有配置好CUDA,那么,该值应该赋值为True;

(2)UseCuDNN:是否使用CuDNN,默认值为True;如果本机没有配置好CUDA,那么,该值应该赋值为False;注意:CpuOnlyBuild和CuDNN不能同时为True

(3)CudaVersion:CUDA的版本

(4)PythonSupport:是否支持python,默认值为False;

(5)MatlabSupport:是否支持matlab,默认值为False;

4.5 打开名称为Caffe的解决方案

利用VS2013打开名称为Caffe的解决方案



4.6 编译libcaffe项目

需要首先编译libcaffe项目(其他的项目依赖于libcaffe项目),具体地:右键libcaffe,选择生成,开始编译libcaffe





经过一段时间等待后,编译成功



这里有两个需要注意的地方:

(1)编译过程中,可能会出现错误,错误的原因是编译过程中出现了警告,而导致编译无法进行,此时,需要进行如下修改:



即:设置项目属性,不要将警告视为错误

右键->项目属性->C/C++->常规->将警告视为错误 设为否

(2)caffe编译过程中,需要一些依赖包,在有网络的情况下,当编译第一个项目libcaffe时,程序会自动从网路下载这些依赖包,下载到与caffe-windows文件夹同级的NugetPackages文件夹中,下图所示即为程序自动下载的依赖包



但在没有网络情况下,需要事先将这些依赖包下载好,并将它们的路径在vs的管理NuGet程序包中进行设置:工具->选项->NuGet Package Manager->程序包源->利用右侧的加号添加本地的package





手动添加这些package地址后,还需要手动对这些NuGet Package进行安装

4.7 编译caffe项目

同样,在caffe项目处右键生成

4.8 编译其他项目

编译完libcaffe和caffe两个项目后,再依次编译其他项目,同样的方法

5.运行第一个caffe测试程序

为了测试编译好的caffe能否正常使用,需要进行测试,主要利用mnist数据集进行分类问题的测试

(1)下载测试数据集



(2)修改配置文件

进入文件夹
D:\software\caffe-vs\caffe-windows\examples\mnist
,即examples路径下的mnist文件夹



① 打开
lenet_solver.prototxt


设置网络配置文件路径,这里使用了绝对路径,相对路径还没有尝试



② 打开
lenet_train_test.prototxt




(3)运行caffe程序,具体地

① 打开cmd命令行,cd到caffe-windows的
.\Build\x64\Debug
路径下,在该路径下,可以直接执行caffe.exe

D:\software\caffe-vs\caffe-windows\Build\x64\Debug




或者,为了方便,可以将caffe的路径添加到环境变量Path中,这样,cmd就可以直接识别caffe命令了



② 运行caffe

caffe train -solver lenet_solver.prototxt


注意,因为上一步已经将
D:\software\caffe-vs\caffe-windows\Build\x64\Debug
路径添加到环境变量PATH中了,所以,这里可以直接使用caffe.exe

下面两步主要配置cuDnn、python和matlab,具体配置时,应该在4.5之前进行

6. 配置cuDNN

nVidia官网下载cuDNN v3或者是cuDNN v4,注意,需要注册才能下载

下载后解压缩,如下图所示



配置cuDNN的路径,有两种方案:

方案1:将cuDNN v4的压缩包内的bin、include、lib中的文件分别放置在%CUDA_PATH% (即cuda的安装路径)的相应目录中

方案2:将 .\windows\CommonSettings.props文件中的CuDnnPath设置为该解压缩路径,例如,将cuDNN解压后文件放置在
D:\software\caffe-vs\cuda-cuDNN
中,那么,在CommonSettings.props中,令
<CuDnnPath>D:\software\caffe-vs\cuda-cuDNN\</CuDnnPath>


并且,令CommonSettings.props文件中的UseCuDNN如下:
<UseCuDNN>ture</UseCuDNN>


7. 配置python

之前已经安装好了python了,具体方法参考 theano安装(一)windows配置安装theano环境(非GPU版)

注:是借助于AnaConda安装的

利用pip工具安装protobuf:
pip install protobuf




在文件中做两处更改:

(1)
<PythonSupport>true</PythonSupport>


(2)PythonDir更改为python的安装目录,这里的python是利用Anaconda安装的,安装路径位于
D:\File Program\Anaconda\
,该目录下含有python.exe



<PropertyGroup Condition="'$(PythonSupport)'=='true'">
<PythonDir>D:\File Program\Anaconda\</PythonDir>
<LibraryPath>$(PythonDir)\libs;$(LibraryPath)</LibraryPath>
<IncludePath>$(PythonDir)\include;$(IncludePath)</IncludePath>
</PropertyGroup>


添加环境变量

在环境变量的用户变量中,新建用户变量,变量名“PythonPath”,变量值“D:\software\caffe-vs\caffe-windows\Build\x64\Release\pycaffe”

或者将文件夹\Build\x64\Release\pycaffe\caffe 复制到\lib\site-packages.

8.配置matlab

这里主要涉及修改CommonSettings.props文件中两个地方

修改CommonSettings.props文件中的,令
<MatlabSupport>true</MatlabSupport>


修改CommonSettings.props文件中的参数,令其为本机的matlab安装目录

<PropertyGroup Condition="'$(MatlabSupport)'=='true'">
<MatlabDir>D:\File Program\Matlab\</MatlabDir>
<LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath>
<IncludePath>$(MatlabDir)\extern\include;$(IncludePath)</IncludePath>
</PropertyGroup>


添加环境变量

After you have built solution with Matlab support, in order to use it you have to:

add the generated matcaffe folder to Matlab search path, and
add <caffe_root>\Build\x64\Release to your system path.


注:发现一篇写的比较好的博客

http://m.blog.csdn.net/article/details?id=50819464
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: