windows10+cuda8.0+cudnn5.0+caffe+vs2013

   之前有一篇博客讲解了在Ubuntu上安装cuda+cudnn+tensorflow,现在这篇博客讲解的是在windows上安装caffe,因为深度学习平台有很多,我们避免不了不同平台之间的转换,caffe中有python和MATLAB接口,我们可以利用接口来调用caffe存储的模型和参数
1. 安装visual studio 2013
    这里需要注意的是,必须使用**vs2013**,否则无法编译通过,作者就在vs的版本踩了很多坑,试了vs2017、vs2015、vs2013,最终才成功
2. 从cuda官网上下载cuda和cudnn
    我们在此选择的版本是**cuda8.0和cudnn6.0**,平台是windows平台。一定要是**cuda8.0和cudnn6.0**,亲测有效,其他的版本会有各种各样的问题!!!!
    下载完之后,便安装cuda,安装完成后,将cudnn里的的bin、include、lib3个文件夹分别复制到cuda的安装路径中C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0,覆盖原来的文件。
3. 安装caffe
    caffe的下载地址是[Microsoft/caffe][1]
    下载之后,进入windows文件夹,将里面的CommonSettings.props.example重命名为CommonSettings.props,并使用Notepad打开进行编辑。
    编辑的内容有:
        <CpuOnlyBuild>false</CpuOnlyBuild>
        <UseCuDNN>true</UseCuDNN>
        <CudaVersion>8.0</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>true</PythonSupport>
        <!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to be
         set to the root of your Matlab installation. -->
        <MatlabSupport>true</MatlabSupport>
        <CuDnnPath></CuDnnPath>  #这里填写cundd的路径
    # 这里一定要是python2
    <PropertyGroup Condition="'$(PythonSupport)'=='true'">
        <PythonDir>D:\Anaconda\envs\python2</PythonDir>
        <LibraryPath>$(PythonDir)\libs;$(LibraryPath)</LibraryPath>
        <IncludePath>$(PythonDir)\include;$(IncludePath)</IncludePath>
    </PropertyGroup>

    <PropertyGroup Condition="'$(MatlabSupport)'=='false'">
        <MatlabDir>D:\matlab\Matlab</MatlabDir>
        <LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath>
        <IncludePath>$(MatlabDir)\extern\include;$(IncludePath)</IncludePath>
    </PropertyGroup>
**为什么一直强调是vs2013,Python2呢,我们在后面会解释**
编辑完毕,并保存。
使用vs2013打开Caffe.sln,然后选择调试->caffe属性,单击配置属性,上方的配置选为活动 (Release),平台选为活动(x64)。再点击配置属性,点击C/C++ ,警告等级设为3,将警告视为错误设为否,点击确定。
开始执行,这段期间会很慢,因为vs2013的NuGet程序会自动下载caffe需要的依赖包,需要翻墙,如果没有成功,则打开选项->NuGet包管理器->程序包源,手动把依赖包复制进去,[NuGet下载地址][2],密码qfui,Debug成功之后,替换成Release进行编译。
以上参考[博客][3]:http://forestli.com/archives/93/
如果NuGet下载依赖包成功,则在与caffe的同级目录下,会有一个NugetPackages包,里面放了我们需要的依赖包,根据这些依赖包的版本,可以看出这些依赖包只支持python2和vs2013
v120 --- vs2013
v140 --- vs2015
v150 --- vs2017
如果编译还是没有通过,并且报错:error: too few arguments in function call,则双击错误定位出错函数cudnnSetConvolution2dDescriptor,在参数列表末尾补充一个参数 CUDNN_DATA_FLOAT 或CUDNN_DATA_DOUBLE即可。
如果出现没有生成object文件的错误,双击该错误,点击确定,然后保存即可。

同时,这里有一个vs里的小tip与大家分享,如果电脑里安装了vs2017,而需要使用vs2015的环境运行代码,这里可以打开vs2017的installer,点击修改,在单个组件界面,找到编译器、生成工具和运行时这个选项,在里面勾选用于桌面的VC++2015.3 v140工具集,这样vs2017也可以用于vs2015的环境。
选中需要编译的项目,右键属性->常规->平台工具集,选择vs2015版本即可。

还有一个关于cuda9.0+cudnn7.0+vs2017的小故事
cuda9.0和vs2017是不兼容的,即在安装cuda9.0时,是无法将cuda和vs2017相集成,解决办法就是,在安装cuda的时候,选择自定义安装,不要勾选visual studio integration这个选项,然后进行安装。同时,在cuda解压路径:C:\User\XXX\AppData\Local\Temp\CUDA这个文件夹中,复制CUDAVisualStudioIntegration这个文件夹。
待cuda安装完毕之后,找到vs2017的BuildCustomization文件夹(路径:C:\Visual Studio\Common7\IDE\VCTarget\BuildCustomization),将CUDAVisualStudioIntegration里的所有文件都复制到BuildCustomization里即可,这样就完成了CUDA和vs2017的集成。最后,打开文件路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\crt 中的host_config.h 文件,将里面第133行的
# if _MSC_VER < 1600 || _MSC_VER > 1911 # 1911 改为 1920
这样就可以在vs2017里创建CUDA程序啦~
以上问题主要参考[博客][4]:https://blog.csdn.net/LOVELESSYI/article/details/79219276
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值