当前位置: 首页 > news >正文

Windows 10下安装配置Caffe并支持GPU加速(修改版)

 

基本环境

建议严格按照版本来
- Windows 10
- Visual Studio 2013
- Matlab R2016b
- Anaconda
- CUDA 8.0.44
- cuDNN v4


1. 安装CUDA 8.0

\
安装完后,程序会自动地添加一个CUDA_PATH的环境变量:
\


2. 下载cuDNN

下载前需要在Developer网上注册一个号,简单填一填基本材料即可。
\
\
下完就是一个压缩包,也没办法安装的,压缩包里面有三个文件,分别是bin,include,lib,把它们解压,得到一个叫cuda的文件夹。


3. 从Microsoft的Github中下载Caffe的源码

注意了,一般来讲Windows配置Caffe是比较困难的,原因就在于caffe包不能去正常的官网下载,这个微软caffe真是给我们省了不少的麻烦,所以,强调一下,去这个链接下载Caffe源码的压缩包!
https://github.com/Microsoft/caffe
\
下载完后,解压文件,得到一个叫caffe-master的文件夹。


4. 安装Caffe

4.1 打开caffe-master文件夹,然后看到一个windows文件夹,然后继续打开windows文件夹,看到里面一个CommonSettings.props.example文件,复制出来一份,并改名字为CommonSettings.props。

\

4.2 用Visual Studio 2013打开windows文件夹下的Caffe.sln,检查解决方案中的项目,重点看libcaffe和test_all是否成功地被导入。

\
如果这两个没有成功导入,原因是Visual Studio 2013的安装路径中缺少CUDA 8.0.props(或者是你的版本号在CommonSettings.props写错了),我的是这个路径
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations
其实CUDA 8.0.props就在cuda的安装目录下,我的路径是
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\visual_studio_integration\MSBuildExtensions
只要拷贝到
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations
就行,那么libcaffe和testall就都没问题了!(以上解决方法属于引用,博主实际是导入了这两个项的。)

4.3 设置libcaffe为启动项目

方法是右键libcaffe,选择设为启动项目。
\

4.4 打开解决方案中的CommenSetting.probs,在CuDnnPath那里把存放解压的cudnn出来的文件夹cuda的目录路径放到其中去。(比如我这里是装在F:\Windows+Caffe下面)----------------这一步如果把CuDnn里cuda的文件已经放到Cuda安装目录下的话,就不要再添加路径了,否则最后会报错.

\
也就是说从cudnn-7.5-windows7-x64-v5.1-rc.zip解压出cuda文件夹,假设位置在F:\Windows+Caffe下,那么CuDnnPath设置为F:\Windows+Caffe。这是因为程序中会自动给你加上cuda,例如(CuDnnPath)\cuda\lib\x64;$(LibraryPath)。因此你需要做的就只是指定它的上级目录。

4.5 解决方案配置设为release

 

4.6 选择菜单中的DEBUG->libcaffe Properties...

\
此处需要修改两个地方,分别是配置属性中的常规和C/C++中的常规,如下图所示
\
\

 

另外,在cudnn.hpp文件里找到下面代码,加上版本控制,GUDA版本太高会导致很多错误.

template <typename Dtype>
inline void setConvolutionDesc(cudnnConvolutionDescriptor_t* conv,
    cudnnTensorDescriptor_t bottom, cudnnFilterDescriptor_t filter,
    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));
#if CUDNN_VERSION_MIN(6, 0, 0)//版本控制
  CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv,
   pad_h, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION,
   dataType<Dtype>::type));
#else
  CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv,
   pad_h, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION));
#endif
}

 

4.7 开始编译

\
漫长的等待… … …
直到编译成功,lucky boy,我这儿跳出这个提示,暂时没有去理他,反正没有出错就先这样吧
\

4.8 查看战利品

caffe_master文件夹下应该生成了一个名为Build的文件夹,以后编译的成功和运行需要的文件都会存放在..\build\X64\Relase下面。
\
至此,说明’libcaffe’已经成功地编译完啦。


5. 编译caffe

在Visual Studio 2013的解决方案上面右击选择属性(properties)
\
\
可以看到原来的是单项目启动,编译libcaffe,那么现在我们选择编译caffe,也可以选择更多的任务来编译。
\
开始编译,漫长的等待… … …后,也就编译成功啦!可以去看看战利品。
\


Windows10下安装配置Caffe并支持GPU加速
本文用到的安装材料:百度网盘

原文是在windows7系统配置环境,matlab2016a,cuda是7.5.

我的差异;win10,matlab2016b,cuda8.0.结果是成功的

转载于:https://www.cnblogs.com/bile/p/9055368.html

相关文章:

  • mac homebrew安装
  • 每天10道编程题-第四天
  • 【连载】物联网全栈教程-从云端到设备(十二)---最简单的单片机上云方法!...
  • Tomcat源码分析之—具体启动流程分析
  • 集合,映射,流程控制, 知识点。
  • java7 concurrency cookbook(第三章)
  • jquery获取表单数据方法$.serializeArray()获取不到disabled的值
  • Apache RewriteCond RewriteRule
  • 手摸手,带你用 vue 动画实现原生 app 切换效果,丝滑般的体验
  • @font-face 用字体画图标
  • DOM笔记(四):HTML 5 DOM复杂数据类型
  • webpack Cannot find module 'webpack/schemas/WebpackOptions.json'
  • VMware vCenter Converter 组件
  • 鱼鹰软件签约中影集团电影数字制作基地
  • Java对日期Date类进行加减运算,年份加减,月份加减
  • [PHP内核探索]PHP中的哈希表
  • @jsonView过滤属性
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 77. Combinations
  • IDEA 插件开发入门教程
  • iOS 颜色设置看我就够了
  • JS学习笔记——闭包
  • learning koa2.x
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • react 代码优化(一) ——事件处理
  • 闭包--闭包之tab栏切换(四)
  • 对JS继承的一点思考
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 开发基于以太坊智能合约的DApp
  • 什么是Javascript函数节流?
  • 使用Gradle第一次构建Java程序
  • 我看到的前端
  • 新版博客前端前瞻
  • 用Canvas画一棵二叉树
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (4)STL算法之比较
  • (BFS)hdoj2377-Bus Pass
  • (LeetCode C++)盛最多水的容器
  • (转)http-server应用
  • (转)母版页和相对路径
  • (转)视频码率,帧率和分辨率的联系与区别
  • .apk文件,IIS不支持下载解决
  • .NET : 在VS2008中计算代码度量值
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET 8.0 中有哪些新的变化?
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET 读取 JSON格式的数据
  • .NET企业级应用架构设计系列之开场白
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示