一、需要安装的软件

  1)vs2013,我是在http://www.52pojie.cn/thread-492326-1-1.html这个网址安装的。我之前用的是vs2012,按照网上的配置教程会爆各种错误,NuGet包总是还原失败,调试了一整天都没弄成功,最终还是安装了vs2013,才使配置过程一切顺利,所以还是建议安vs2013。

  2)matlab R2014a,这是我用的matlab版本,如果不打算配置matlab这个接口的话可以不用下载这个。

  3)cuda 8.0,cuda的下载与安装介绍在我的另一篇文章里有http://www.cnblogs.com/luyaoblog/p/7247671.html。这里需要注意的一个问题就是下载之前一定要先查一下自己显卡的型号,以免下载和自己电脑不匹配的cuda。

  4)下载caffe for windows,解压后的文件为caffe-master,他有两层同名文件夹,不要擅自修改。下载地址https://github.com/Microsoft/caffe

  5)下载cuDNN,下载地址https://developer.nvidia.com/cudnn,需要先注册在选择下载版本,建议下载版本4或5,这是因为在【..\caffe-master\windows】下CommonSettings.props文件中第23行有说明

   <!-- CuDNN 4 and 5 are supported -->

二、整理下载的文件

  建议把caffe-master.zip和cudnn-8.0-window10-x64-v5.0-zip放在一个文件夹内解压,文件夹名字为caffe。如图

   

      NugetPackages这个文件夹先不用管,这是后期自动生成的。

三、修改配置文件

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

  

  接下来用vs2013打开CommenSetting.probs文件,先不要点Caffe.sln,因为你直接点可能会导致libcaffel和test_all加载失败,我们首先打开这个文件CommenSetting.probs,然后修改里面的配置信息。

  

  

  主要修改的内容为:

  <UseCuDNN>true</UseCuDNN>

  <CudaVersion>8.0</CudaVersion>

  说明:这里UseCuDNN设置为true,因为我下载的cuda版本为8.0,这里原来是7.5,需要改成8.0。

  <MatlabSupport>true</MatlabSupport>

  <CudaDependencies></CudaDependencies>

  说明:因为我要配置matlab的接口,所以要把这个设置为true

  <!-- CuDNN 4 and 5 are supported -->

  <CuDnnPath>D:\caffe</CuDnnPath>

  <ScriptsDir>$(SolutionDir)\scripts</ScriptsDir>

  说明:这里CuDnnPath是自己电脑里cudn存放地址的上一级文件名称,因为前面介绍了,建议将cuda和cudnn的解压文件放在一个caffe文件夹下。

  <PropertyGroup Condition="'$(MatlabSupport)'=='true'">

  <MatlabDir>D:\Program Files\MATLAB\R2014a</MatlabDir>

  <LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath>

  <IncludePath>$(MatlabDir)\extern\include;$(MatlabDir)\toolbox\distcomp\gpu\extern\include;$(IncludePath)</IncludePath>

  </PropertyGroup>

  说明1:这里MatlabDir是自己电脑中matlab启动文件的地址,如果不知道,可以右键桌面快捷方式从属性中查看。

  说明2:IncludePath也改了,直接按照我的复制就可以。

四、用vs2013打开caffe.sln

  因为刚才已经将CommenSetting.probs修改过了,现在应该可以正常载入了。可以看到主文件现在是libcaffe(黑色加粗的文件)。

  现在点击【调试】-【libcaffe属性】

  

  

  然后现在开始编译,先编译的是libcaffe,如果成功的话基本就不会再有大问题了。

  这个时候,在你刚刚解压出来的caffe-master文件夹下面就应该出现一个名叫Build的文件夹,以后编译的成功和运行需要的文件都会存放在build\X64\Relase下面.

  如果刚刚那步成功了,接下来右键解决方案“caffe”选择属性,将单启动项目改为多启动项目,然后重新编译,耐心等待最后编译结果。

五、matlab的设置

  1)打开matlab2014a,选择【主页】-【设置路径】-【添加并包含子文件夹】

  选择D:\caffe\caffe-master\caffe-master\Build\x64\Release\matcaffe,点击保存,Build文件夹就是刚刚编译成功后生成的文件夹。

  2)设置系统变量

  添加环境变量,在path中添加D:\caffe\caffe-master\caffe-master\Build\x64\Release。

  重启matlab,然后在命令行中输入:caffe.reset_all测试,如果如下图所示,说明配置成功。

  

六、出现的一些问题

  问题1:libcaffe和testall加载不成功

  解决:1.检查cuda版本,即CommonSettings.props中的cuda版本和自己电脑中安装的是否一致,CommonSettings.props中默认是7.5。

  2.vs2013的安装路径中缺少CUDA 8.0.props,该文件的路径为(我电脑中的路径)

  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.\extras\visual_studio_integration\MSBuildExtensions

  将其复制后粘贴到

  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations

  问题2:libcaffe编译不成功,missing Nuget

  解决:这是我用vs2012出现的问题, 换成vs2013之后就好了。

  问题3:caffe.sln error MSB8020: The builds tools for v120 (Platform Toolset = 'v120

  解决:因为我一开始用的是vs2012(v110),这个工具好像默认是vs2013(v120),但是我在设置里把libcaffe的平台改成了vs2012还是不成功,随便这个错误没有了, 但是又有了其他错误,总之最后还是换成了vs2013就一切顺利了。。

  问题4:无法打开输入文件“caffelib.lib”

  这个是最早照着网上一个教程,下载了caffe-vs2012和一个caffe-windows,把caffe-vs2012里的三个文件夹复制到caffe-windows里,按照教程打开MainBuilder.sln时会报的错误,我也不清楚什么原因。还是老老实实按照这个教程一步一步来吧。

  

  

  

  

64位win10+cuda8.0+vs2013+cuDNN V5下Caffe的编译安装教程并配置matlab2014a 接口的更多相关文章

  1. Ubuntu 14.04(64位)+GTX970+CUDA8.0+Tensorflow配置 (双显卡NVIDIA+Intel集成显卡) ------本内容是长时间的积累,有时间再详细整理

    (后面内容是本人初次玩GPU时,遇到很多坑的问题总结及尝试解决办法.由于买独立的GPU安装会涉及到设备的兼容问题,这里建议还是购买GPU一体机(比如https://item.jd.com/396477 ...

  2. Caffe在以下环境安装:Win10+CUDA8.0+Cudnn5.0+VS2013+Matlab2016a(转载)

    Caffe在以下环境安装:Win10+CUDA8.0+Cudnn5.0+VS2013+Matlab2016a 最近于导师要求下,从头学习Caffe.之前接触了CNN进行了图片分类,后导师提起过Caff ...

  3. 64位Win10系统安装Mysql5.7.11

    最近在装了64位Win10系统的mac book笔记本上用mysql-installer-community-5.7.11.0安装Mysql5.7.11,在配置mysql server时老是卡住,报错 ...

  4. Ubuntu 16.04 + CUDA 8.0 + cuDNN v5.1 + TensorFlow(GPU support)安装配置详解

    随着图像识别和深度学习领域的迅猛发展,GPU时代即将来临.由于GPU处理深度学习算法的高效性,使得配置一台搭载有GPU的服务器变得尤为必要. 本文主要介绍在Ubuntu 16.04环境下如何配置Ten ...

  5. 64位win10系统无法安装.Net framework3.5的两种解决方法

    参考网站: https://blog.csdn.net/zang141588761/article/details/52177290 在Windows10中,当我们安装某些软件的时候会提示“你的电脑上 ...

  6. 64位win10系统无法安装.Net framework3.5的两种解决方法【转】

    近日有网友反映在windows10_64位系统电脑上安装Net framework3.5,操作时总失败,怎么办呢?小编下面就介绍win10 64位系统无法安装Net framework3.5的两种解决 ...

  7. XP,32/64位Win7,32/64位Win8,32/64位Win10系统 【春节版】

    本系统是10月5日最新完整版本的Windows10 安装版镜像,win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为win10 Edge浏览器中国默认主页和搜索引擎 ...

  8. 【春节版】年度精品 XP,32/64位Win7,32/64位Win8,32/64位Win10系统

    本系统是10月5日最新完整版本的Windows10 安装版镜像,win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为win10 Edge浏览器中国默认主页和搜索引擎 ...

  9. 【2016新年版】年度精品 XP,32/64位Win7,32/64位Win8,32/64位Win10系统

    本系统是10月5日最新完整版本的Windows10 安装版镜像,win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为win10 Edge浏览器中国默认主页和搜索引擎 ...

随机推荐

  1. 剑指offer面试题5:逆序打印单链表(Java)

    Java创建单链表(头插法.尾插法),并逆序打印单链表: package day_0324; import java.util.Scanner; import java.util.Stack; cla ...

  2. Hibernate系列之核心开发接口

    一.概述 所有的hibernate应用中都会访问5个核心接口,它们分别是: Configuration:配置hibernate,创建SessionFactory对象 SessionFactory:初始 ...

  3. DateTime数据类型保存问题(DateTime2)

    DateTime And DateTime2 问题: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值 原因: EF中model存在datetime类型的字段, ...

  4. MDU某产品OMCI模块代码质量现状分析

    说明 本文参考MDU系列某产品OMCI模块现有代码,提取若干实例以说明目前的代码质量,亦可作为甄别不良代码的参考. 本文旨在就事论事,而非否定前人(没有前人的努力也难有后人的进步).希望以史为鉴,不破 ...

  5. Esper学习之十五:Pattern(二)

    上一篇开始了新一轮语法——Pattern的讲解,一开始为大家普及了几个基础知识,其中有说到操作符.当时只是把它们都列举出来了,所以今天这篇就是专门详解这些操作符的,但是由于篇幅限制,本篇先会讲几个,剩 ...

  6. maven中properties标签定义变量

    在pom.xml中添加依赖时语法如下 <dependency> <groupId>org.springframework</groupId> <artifac ...

  7. [原]git的使用(六)---远程仓库

    10.远程仓库 -------------------------------------------------------------------------------------------- ...

  8. 查看JVM使用的默认的垃圾收集器

    一.查看步骤 cmd执行命令: java -XX:+PrintCommandLineFlags -version 输出如下(举例): 针对上述的-XX:UseParallelGC,这边我们引用< ...

  9. 前端代码在线调试&分享网站

    1.RunJs 2.CodePen 3.JsFiddle

  10. python unittest框架中doCleanups妙用

    偶看unittest官方文档中,发现一个很好用的功能函数doCleanups,看看官方是怎么解释的: doCleanups() This method is called unconditionall ...