深度学习(caffe+VS2013+WIN10)使用GPU编译——调用python接口并且成功运行mnist

来源:互联网 发布:深圳淘宝网店培训 编辑:程序博客网 时间:2024/05/19 19:41
本文主要介绍:经过一番欲哭无泪的折腾,终于在Windows10 64位系统下成功配置Caffe的GPU版,可惜的是我的电脑并没有掉cudnn,因为个GPU计算能力不够,我的GPU计算能力是2.1,而cudnn不支持3.0以下的版本。下面总结一下基本的配置过程,以及配置过程中遇到的问题。

配置环境:Windows10 X64 + CUDA7.5 + VS2013 +  python2.7

1.安装CUDA

1.1. 版本选择

至于版本的选择,我安装的是7.5;其实安装7.5、7.0和8.0版本都可以,安装包网上到处可见,

1.2 安装过程
CUDA安装过程以及与VS关联过程参考:
http://wenku.baidu.com/link?url=iDoyy01I7Q-4D6GJQZjocilfYIbwPdbr3n3fgH4QXdpFjtkEBM6DiiJbDhpInrl7MpuOV7D1LWAWZofmICVxvT_p5dTmiDvngT7oS_Z_9_a
(编译器必须是VS2013)
1.3 更新显卡驱动
安装后,运行GeFroce Experience,点击“驱动程序”—>“检测更新”,其实

2.配置Caffe
2.1. 下载Caffe及第三方库 。
文件下载地址见:http://blog.csdn.net/happynear/article/details/45372231,可以参考博客中的“一、准备”。(博客中“二、编译”不够明确,并且按照博客中的过程进行编译,会遇到一些问题,具体问题下文详细说明。)
2.2. 编译
(1)1、把文件加载进入vs2013
(2)打开caffe-windows-master/buildVS2013/MainBuilder.sln,打开之后切换编译模式至Release X64模式。如果打开之后显示加载失败,可能你的CUDA版本和工程中的不一致,工程中是CUDA 7.5版,这时就要用记事本打开caffe-windows-master/buildVS2013目录下各个文件夹内的.vcxproj文件,搜索CUDA 7.5,把这个7.5换成你自己的CUDA版本,就可以正常打开了。
(3)查看显卡GPU CUDA Capability的版本,方法:
step1: 右键“计算机”—>“属性”—>“设备管理器”—>“显示适配器”。
要查看显卡CUDA Capability版本的原因是因为:buildVS2013项目默认是开启cudnn的,而CUDNN要求GPU CUDA Capability 不低于3.0,如果CUDA Capability 版本低于3.0,在编译过程中,不关闭cudnn,则会出现类似问题:
http://www.aiuxian.com/article/p-2150379.html
http://blog.csdn.net/eagelangel/article/details/50562065
(4)修改工程预编译,关闭cudnn
如果GPU CUDA Capability 不低于3.0,则跳过该过程,低于的进行如下操作:
通过修改预编译来关闭cudnn,点击caffe工程,右键“属性”打开属性页,

删除“预处理器定义”中的USE_CUDNN,同理, 工作中的其他项目也删除USE_CUDNN


这里写图片描述


(5)修改matcaffe、pycaffe工程相关属性
Caffe接口可以是Python,也可以是Matlab,我选用的是matlab,所以把MainBuilder.sln过程中的pycaffe过程移除了,介绍一下matcaffe的修改过程,pycaffe工程类似:
step1:打开matcaffe工程属性页,添加matlab的 include路径和lib路径:
 这里写图片描述

step2:连接器中添加附加目录:
这里写图片描述
 
(要根据自己的matlab路径进行添加)
(6)准备工作已经完成,点击“生成”进行编译,编辑过程中会花费较长时间。
编译完成后,会在”caffe-windows-master/matlab+caffe/private“生成caffe_.mexw64文件。

3.测试
3.1 配置
设置好相关变量
3.2 测试
运行.bat文件运行mnist,之后GPU加速版的caffe框架成功运行了。
怎么样,看到这,有没有点小激动呀!

注意:如果运行caffe时报错:Check failed: status == CUDNN_STATUS_SUCCESS
这时可以把cuDnn的选项去掉

在各个项目点击右键【属性】->【C/C++】->【所有选项】->【预处理器定义】(preprocessordefinitions)

点击向下的箭头,【编辑】


然后在右边

删除里面的USE_CUDNN,然后重新编译

1 0