刚刚解决了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假死现象
开始动手
- 安装VS2013(推荐使用,其他版本编译可能会报其他错误)
装好CUDA并且培植成功的话再VS中会多出一个菜单项 - 安装CUDA,NVDIA Developer可以下载,需要登录NVDIA账户。可以参考CUDA编程(一):背景与安装。如果安装失败,可以参考Win10 NVDIA CUDA安装失败解决方案。
CUDA安装程序会自动配置环境变量。
- Clone Caffe SSD Windows版本 Github传送门
- 进入clone保存的文件夹:
\caffe-ssd-microsoft-master\windows
,复制一份CommonSettings.props.example
并重命名为CommonSettings.props
- 打开工程,加载
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
使用CPU Only编译完美通过,没有爆错,但使用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编译成功。
然后我们把整个项目生成一下:
大功告成!
生成的文件存放在\Build\x64\Release
后记(踩坑总结)
- 安装CUDA之前先把之前已经安装的NVDIA驱动卸载了
- 注意CuDNN解压路径
- 编译GPU版本的时候记得加上
CUDNN_DATA_FLOAT
否则一大把错误。(这个问题应该会在日后的版本中得到修复) - 开启Python支持容易爆错,目前未找到解决方法….
附录
[NugetPackages 下载地址]
百度云
和git下来的文件夹放在同一级