Win10+Caffe&CPU&GPU+VS2013安装记录

版权声明:Houiin https://blog.csdn.net/w670165403/article/details/81739221

刚刚解决了CUDA的安装问题,接下来就动手编译试试:

Caffe介绍(百度百科)

Caffe:全称Convolutional Architecture for Fast Feature Embedding。是一种常用的深度学习框架,主要应用在视频、图像处理方面的应用上。

需要准备的东西

点击标题进入对应网站下载
1. VS2013
2. CUDA 我用的是v9.2 (CPU Only不需要)
3. OpenCV 我用的是3.4.2 (CPU Only不需要)
4. CuDNN Library (CPU Only不需要)
5. Python(可选) 我安装了3.7 debug需要vs2015以上
6. NugetPackages 首次编译的时候会自动下载,会造成VS假死现象

开始动手

  1. 安装VS2013(推荐使用,其他版本编译可能会报其他错误)
    查看CUDA是否装好
    装好CUDA并且培植成功的话再VS中会多出一个菜单项
  2. 安装CUDA,NVDIA Developer可以下载,需要登录NVDIA账户。可以参考CUDA编程(一):背景与安装。如果安装失败,可以参考Win10 NVDIA CUDA安装失败解决方案CUDA安装程序会自动配置环境变量。
  3. Clone Caffe SSD Windows版本 Github传送门
  4. 进入clone保存的文件夹:
    \caffe-ssd-microsoft-master\windows,复制一份CommonSettings.props.example并重命名为CommonSettings.props
  5. 打开工程,加载CommonSettings.props
    打开工程

修改配置文件

善用Ctrl+F快速查找
其实打开CommonSettings.props就能看到官方其实已经写好了注释,我们根据提示即可。
需要修改的地方:

CPU Only
<CpuOnlyBuild>true</CpuOnlyBuild>
<UseCuDNN>false</UseCuDNN>

如果需要Python、MATLAB之类的支持可以在这些标记中改成true启用

//Example:启用Python支持
<PythonSupport>true</PythonSupport> // 是否启用python支持
<PythonDir>F:\Program Files\Python</PythonDir>//Python安装路径,可在系统变量PATH中查看

*然后下面的CuDNN啥的都不用管了

With GPU
<!--NOTE: CpuOnlyBuild and UseCuDNN flags can't be set at the same time.-->
<CpuOnlyBuild>false</CpuOnlyBuild>
<UseCuDNN>true</UseCuDNN>
<CudaVersion>9.2</CudaVersion>

然后填入CuDNN路径

<CudaVersion>9.2</CudaVersion> //CUDA 版本号,我自己安装的是9.2
<UseCuDNN>true</UseCuDNN> // true 代表使用cuDNN库
<!-- CuDNN 3 and 4 are supported -->
<CuDnnPath>这里填写CuDnn的路径</CuDnnPath>

cudnn路径填到解压出来的cuda的上一级路径即可。

即路径下是包含有cuda文件夹那一层,而非cuda文件夹里面那层,例如F:\Deep Learning\cudnn

修改caffe项目属性


警告不报错
更改为Release 平台选择 x64

生成libcaffe

生成libcaffe
使用CPU Only编译完美通过,没有爆错,但使用GPU就爆错了,如图:
GPU编译爆错

GPU编译error MSB3721错误解决方案

打开 cudnn.hpp ,找到

int pad_h, int pad_w, int stride_h, int stride_w) {
  CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv,
      pad_h, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION));
}

修改为:

int pad_h, int pad_w, int stride_h, int stride_w) {
  CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv,
      pad_h, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION,CUDNN_DATA_FLOAT));
}

修改
其实就是多加了一个CUDNN_DATA_FLOAT
重新生成 libcaffe
GPU libcaffe编译成功
GPU libcaffe编译成功。
然后我们把整个项目生成一下:
GPU整个项目完成
大功告成!
生成的文件存放在\Build\x64\Release
GPU生成的文件


后记(踩坑总结)

  1. 安装CUDA之前先把之前已经安装的NVDIA驱动卸载了
  2. 注意CuDNN解压路径
  3. 编译GPU版本的时候记得加上CUDNN_DATA_FLOAT否则一大把错误。(这个问题应该会在日后的版本中得到修复)
  4. 开启Python支持容易爆错,目前未找到解决方法….

附录

[NugetPackages 下载地址]
百度云
和git下来的文件夹放在同一级这里写图片描述

猜你喜欢

转载自blog.csdn.net/w670165403/article/details/81739221