Windows-caffe配置
我在博客园的第一篇博客开始了,好紧张,好激动,好淫荡。。。哈哈O(∩_∩)O哈!
下面开始进入正题。配置环境为windows7+cuda7.5+vs2013+matlab2014a
之前用的happynear修改过的caffe(https://github.com/happynear/caffe-windows),也还不错,但后面其实发现在windows下编译caffe也挺简单的。
我用的是Microsoft版caffe,做出来的solution更加容易维护,第三方库完全由Nuget进行管理,几乎不用配置什么东西,适合像我这种喜欢偷懒的
。
caffe-master下载地址https://github.com/Microsoft/caffe
一、安装CUDA,VS2013,matlab(可选),python(可选)
bulabulabula
二、配置
将下载的caffe-windows.zip进行解压,并进入其根目录下的windows目录,(eg:E:\caffe\windows)。
将该目录下的CommonSettings.props.example复制一个并改名为CommonSettings.props,同样还是放在当前目录下。

点击打开该CommonSettings.props,

无CUDA则CpuOnlyBuild设为true,并且UseCuDNN设为false
有CUDA则CpuOnlyBuild设为false,并且UseCuDNN设为true,也可不用CuDNN。
如果编译matlab接口,前面MatlabSupport设为 true,Python类似。然后找到:

如果上面要编译matlab接口,则在MatlabDir加入matlab安装路径如D:\Matlab2014
然后在 <IncludePath>加入$(MatlabDir)\toolbox\distcomp\gpu\extern\include;因为可能由于matlab版本很新编译时会遇到"gpu/mxGPUArray.h" Not Found问题。
三、CuDNN
上一步说漏了,这里说也来得及。
去官网https://developer.nvidia.com/cudnn下载CuDNN,也可以下载我的,我分享在百度网盘了(http://pan.baidu.com/s/1c1pLim),里面有V4和V5版本,现在已经支持V5了。
进行解压,将相应的bin,include,lib分别放于自己的cuda下面的相应目录中,例如,本人电脑的cuda目录为C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v7.5(不过默认的应该都一样)
因此,将刚才解压的文件放在这个目录下面的bin,include,lib文件夹下。
四、编译
前面的步骤很简单吧,我觉得比网上很多教程都简单了。而且若是只编译CPU版本,第三步就不需要了,cuda也不需要了。
点击E:\caffe\windows该目录下的Caffe.sln用VS2013打开。选择release或debug模式,这里由于别的模块用到了libcaffe,所以,首先选择libcaffe,右键生成。成功之后,再选择整个解决方案,右键生成解决方案(单个编译也可以)。
编译成功后,生成的文件保存于caffe-master\Build\x64\Release下。当然若是debug模式,编译后在caffe-master\Build\x64\debug下。
另外再补充两点:
1.如果出现无法打开libcaffe.lib的错误,编译生成libcaffe,再编译整个解决方案。
2.如果出现没有生成object文件的错误,双击该错误,点击确定,然后保存即可。

以上就是我的经验,分享给大家
Windows-caffe配置的更多相关文章
- Windows+Caffe+VS2013+python接口配置过程
前段时间在笔记本上配置了Caffe框架,中间过程曲曲折折,但由于懒没有将详细过程总结下来,这两天又在一台配置较高的台式机上配置了Caffe,配置时便非常后悔当初没有写到博客中去,现已配置好Caffe, ...
- 【神经网络与深度学习】【CUDA开发】【VS开发】Microsoft官方移植了Caffe配置过程说明
想在Windows平台使用Caffe,吭哧吭哧下载了半天第三方库,后来忽然发现Microsoft官方移植了Caffe,配置起来简直太省心了- 1. 从Microsoft官方Github上下载Caffe ...
- windows下配置apache+php环境
PHP安装 由于windows下php扩展5.6的多余7.0,故以php5.6为开发环境.如果对扩展要求不高,可以使用php7,安装过程类似. 约定: 环境安装目录: D:/phpsetup/ |-- ...
- 在windows下面配置redis集群遇到的一些坑
最近工作不忙,就决定学习一下redis.因为一直在windows下工作,不会linux,没办法就选择在windows下配置redis. windows下配置redis集群的文章有很多,比如:http: ...
- Windows服务器安装配置PHP7.0环境图文教程
摘自http://www.111cn.net/phper/linux-php/109865.htm Windows服务器安装配置PHP7.0环境图文教程 www.111cn.net 更新:2016-0 ...
- windows 下配置 Nginx 常见问题(转)
windows 下配置 Nginx 常见问题 因为最近的项目需要用到负载均衡,不用考虑,当然用大名鼎鼎的Nginx啦.至于Nginx的介绍,这里就不多说了,直接进入主题如何在Windows下配置. 我 ...
- Ant学习-001-ant 基础知识及windows环境配置
一.Ant 概要基础知识 Apache Ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发,用以构建应用,或结合其他开源测试工具例如 git.T ...
- Selenium2学习-001-Selenium2 WebUI自动化Java开发 Windows 环境配置
此文主要介绍 Selenium2 WebUI自动化Java开发 Windows 环境配置,供各位亲们参考,若有不足之处,敬请各位大神指正,非常感谢! 所需软件列表如下所示: 所属分类 具体名称 备注 ...
- Linux和Windows路由配置
Linux和Windows路由配置 一.配置路由 1- 原则上一台主机只能有一条缺省路由.如果一台主机上有多个网段的话,请配置能够上网的那个网段的网关为缺省路由 Linux配置缺省路由: ...
- windows上配置git
windows上配置git1.下载mysisigit进入http://msysgit.github.io/,下载,安装,下一步下一步即可. 2.下载tortoisegit进入http://downlo ...
随机推荐
- 说明你javascript写的很烂的5个问题
Javascript在互联网上名声很臭,但你又很难再找到一个像它这样如此动态.如此被广泛使用.如此根植于我们的生活中的另外一种语言.它的低学习门槛让很多人都称它为学前脚本语言,它另外一个让人嘲笑的东西 ...
- [HNOI2008]越狱 题解(容斥原理+快速幂)
[HNOI2008]越狱 Description 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多 ...
- URAL 1416 Confidential (最小生成树+次小生成树)
Description Zaphod Beeblebrox - President of the Imperial Galactic Government. And by chance he is a ...
- ASP.NET mvc下在Controller下action的跳转方式
在ASP.NET mvc下,action有多种挑战方式: return RedirectToAction("Index");//一个参数时在本Controller下 如果Redir ...
- Go语言的各种Print函数
Go语言的各种Print函数 func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) func Pr ...
- Java学习笔记——继承、接口、多态
浮点数的运算需要注意的问题: BigDecimal operand1 = new BigDecimal("1.0"); BigDecimal operand2 = new BigD ...
- 爬虫基础---HTTP协议理解、网页的基础知识、爬虫的基本原理
一.HTTP协议的理解 URL和URI 在学习HTTP之前我们需要了解一下URL.URI(精确的说明某资源的位置以及如果去访问它) URL:Universal Resource Locator 统一资 ...
- 在Eclipse使用Gradle
1.Gradle安装 1.Grandle官网下载Gradle,地址:http://www.gradle.org/downloads 2.设置环境变量,需要设置如下2个环境变量 2.1添加GRADLE_ ...
- python面向对象(二)之封装
封装定义: 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其含义是其他程序无法调用. 即"封装"就是将抽象得到的数 ...
- js事件兼容处理
js封装事件处理函数,兼容ie,支持事件代理 var eventUtil = { bindEvent: function(el, type, target, callback, popgation) ...