caffe是好用,可是配置其环境实在是太痛苦了,依赖的库很多不说,在VS上编译还各种报错,你能想象那种被一百多个红色提示所笼罩的恐惧。 

且网上很多教程是VS2013环境下编译的,问人很多也说让我把15卸载了装13,我的答案是:偏不 



记下这个艰难的过程,万一还要再来一次呢……

Attention: 

本文使用的caffe windows环境配置为: 

VS2015+CMake3.7.2+Python2.7+Anaconda2-4.3.1(X64)+CUDA8.0(x64)+cuDNN v5.1(x64)

符合Caffe官网上的环境要求: 


一、准备工作

不要急着clone代码,把改下的下好该安装的安装好,磨刀不误砍柴工,不然以后编译各种报错够你受的。

1.下载Anaconda,以后直接conda安装Python包很方便 

我这里用的是Anaconda2-4.3.1-Windows-x86_64版本。 

https://www.continuum.io/downloads

2.Cmake,一个跨平台的安装(编译)工具,我用的是cmake-3.8.0-win64-x64。 

https://cmake.org/download/

3.CUDA,NVIDIA推出的运算平台。本机使用8.0 



https://developer.nvidia.com/cuda-downloads 

(安装包有点大,科学上网你懂的)

4.CUDNN,用于GPU加速的,本机使用V5.1 

https://developer.nvidia.com/cudnn 

为什么下V5.1不下最新的V6?看清楚下面这段话

如果你下载了V6,那么恭喜你,你将会得到大约124个编译错误(笑)

改下的差不多了,python都有的伐,上面的包下载/解压/安装好后最好都配置到环境变量中去,不然会编译出错。

二、clone代码&使用cmake编译项目

听官网的话,我们如下操作:

一切都很顺利直到最后一步

> scripts\build_win.cmd
  • 1
  • 1

不要方,跟着我使用些奇淫技巧同官方文档硬怼


首先,用notepad++打开caffe\scripts下的build_win.cmd文件开始改配置(记得备份),这个文件的作用是对cmake进行一些配置,然后运行cmake来构建整个caffe工程:

以下是我本机配置,可做参考

如果安装了CUDNN的话,需要将此安装目录包含进来 

因为我电脑上没有DEFINE了APPVEYOR,就直接从else后面开始看了,AppVeyor 这玩意儿好像是用来实现实现 GitHub 托管项目自动化集成的

注: 

(1)MSVC_VERSION 根据你VS项目版本来,14对应VS2015的项目,12对应VS2013的项目 

(2)只使用CPU的将 CPU_ONLY 改为1 

(3)PYTHON_VERSION 根据你本机版本来,我是2.7所以是2,3.5就是3 

(4)CUDA_ARCH_NAME 是CUDA的架构名称,可选值有:Kepler,Fermi,Maxwell,Pascal,Manual,All,Auto,Auto是自动检测最优值 

(5)WITH_NINJA 要设为0,你不会用到ninja编译器来进行编译 

(6)改完后去scripts\build中把 CMakeCache.txt 文件删掉。因为这里面记录的是用Ninja来编译的,不删除的话不能用VS来编译 

(7)在多个 GPU 上运行 Caffe 需要使用 NVIDIA NCCL

然后再执行

> scripts\build_win.cmd
  • 1
  • 1

发现还是报错,一个名为“libraries_v140_x64_py27_1.1.0.tar.bz2”的依赖包无法下载成功。(我本地使用SS翻墙后执行这段代码还是无法下载。似乎是因为资源是放在AWS云服务器上的)

于是,我们使用点小技巧

1.打开WindowsDownloadPrebuiltDependencies.cmake文件看看它的下载地址 

https://github.com/willyd/caffe-builder/releases/download

2.手动去这个地址上把包下载下来

3.由于之前虽然下载的代码执行失败了可还是为我们建立好了存放依赖库的文件夹,我们把对应文件下载好后解压放进去(默认是在C盘当前用户目录下的dependencies文件夹,download存放下载文件下来的文件,libraries_v140_x64_py27_1.1.0文件夹下则是存放该文件解压后的library包) 

4.手动修改cmake文件夹下WindowsDownloadPrebuiltDependencies.cmake文件和scripts文件夹下download_prebuilt_dependencies.py文件代码,让程序绕过文件中下载和解压的部分直接编译

5.再执行

> scripts\build_win.cmd
  • 1
  • 1

经过大约半小时的等待(视计算机性能而定),cmake应该就将Caffe.sln工程编译好了

三、修改Caffe.sln配置,使用VS2015编译项目

1.将caffe/windows底下的一个配置文件CommonSettings.props.example复制出来重命名为CommonSettings.props。

再用notepad++打开更改下cuda文件夹的路径及版本

2.在build目录下我们用VS2015将Caffe项目打开 

3.右键CMakeTargets底下的All_build生成 

OK,到此为止Caffe windows环境搭建完成并编译成功,准备开始跑mnist的训练集吧!

【神经网络与深度学习】Win10+VS2015 caffe环境搭建(极其详细)的更多相关文章

  1. 深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3

    紧接着上一篇的文章<深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动>,这篇文章,主要讲解如何安装CUDA+CUDNN,不过前提是我们是已经把N ...

  2. 深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动

    前几天把刚拿到了2台GPU机器组装好了,也写了篇硬件配置清单的文章——<深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装>.这两台也在安装Ubuntu 16.04和108 ...

  3. 深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装

    一.硬件采购 近年来,人工智能AI越来越多被人们所了解,尤其是AlphaGo的人机围棋大战之后,机器学习的热潮也随之高涨.最近,公司采购了几批设备,通过深度学习(TensorFlow)来研究金融行业相 ...

  4. 【神经网络与深度学习】转-caffe安装吐血总结

    这周安装了caffe的windows版本和Linux版本,依赖关系太多,如果系统选对了,安装起来很easy,选错了,就会遇见各种坑. 1.操作系统最好使用ubuntu desktop 14.04 64 ...

  5. 【神经网络与深度学习】【CUDA开发】【VS开发】Caffe+VS2013+CUDA7.5+cuDNN配置过程说明

    [神经网络与深度学习][CUDA开发][VS开发]Caffe+VS2013+CUDA7.5+cuDNN配置过程说明 标签:[Qt开发] 说明:这个工具在Windows上的配置真的是让我纠结万分,大部分 ...

  6. 【神经网络与深度学习】【CUDA开发】caffe-windows win32下的编译尝试

    [神经网络与深度学习][CUDA开发]caffe-windows win32下的编译尝试 标签:[神经网络与深度学习] [CUDA开发] 主要是在开发Qt的应用程序时,需要的是有一个使用的库文件也只是 ...

  7. 【神经网络与深度学习】【Qt开发】【VS开发】从caffe-windows-visual studio2013到Qt5.7使用caffemodel进行分类的移植过程

    [神经网络与深度学习][CUDA开发][VS开发]Caffe+VS2013+CUDA7.5+cuDNN配置成功后的第一次训练过程记录<二> 标签:[神经网络与深度学习] [CUDA开发] ...

  8. (转)神经网络和深度学习简史(第一部分):从感知机到BP算法

    深度|神经网络和深度学习简史(第一部分):从感知机到BP算法 2016-01-23 机器之心 来自Andrey Kurenkov 作者:Andrey Kurenkov 机器之心编译出品 参与:chen ...

  9. [DeeplearningAI笔记]神经网络与深度学习人工智能行业大师访谈

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 吴恩达采访Geoffrey Hinton NG:前几十年,你就已经发明了这么多神经网络和深度学习相关的概念,我其实很好奇,在这么多你发明的东西中 ...

随机推荐

  1. 使用Patroni和HAProxy创建高可用的PostgreSQL集群

    操作系统:CentOS Linux release 7.6.1810 (Core) node1:192.168.216.130 master node2:192.168.216.132 slave n ...

  2. Flume架构以及应用介绍(转)

    在具体介绍本文内容之前,先给大家看一下Hadoop业务的整体开发流程: 从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步,从而引出 ...

  3. 讨论---MySQL数据库中null、''、' '区别

    今天在写代码的时候,遇到了一个关于MySQL数据库的问题,发现在表中插入‘’数据的时候插入不进去.发现这张表中的数据没有数据的时候,默认显示的null,当时自己又重复的额试了几次,但是始终没有成功,从 ...

  4. php正则表示中的元字符

    元字符 抛出问题: \d 代表匹配一个字符.而我现在想要匹配十个八个,任意多个数字肿么办? 这个时候我们就要用到元字符.在使用原子的时候,发现只能够匹配一个字符,可是要匹配多个字符就出现了问题.大理石 ...

  5. 13-ESP8266 SDK开发基础入门篇--上位机串口控制 Wi-Fi输出PWM的占空比,IEEE754规约

    https://www.cnblogs.com/yangfengwu/p/11100552.html 这节做个上位机控制Wi-Fi引脚输出的PWM占空比信号,灯的亮度就可以用上位机控制了 大家可以自己 ...

  6. System.getProperty、PropConfig.loadConfig应用

    1.获取项目下制定位置(System.getProperty("admin.root")): 在web.xml中配置webAppRootKey <context-param& ...

  7. 洛谷P2877 [USACO07NOV]防晒霜Sunscreen

    题目 此题有多种贪心方法. 首先简化题意: 有几个在数轴上的区间,和几个在数轴上确定的位置的点,问用这些数目的点,最多能满足多少个区间里有点. 注意:此题跟区间选点问题不一样,每个点只能满足一个区间, ...

  8. GoCN每日新闻(2019-10-23)

    GoCN每日新闻(2019-10-23) GoCN每日新闻(2019-10-23) 1. 从0开始,用Go实现Lexer和Parser https://mp.weixin.qq.com/s/cFGJX ...

  9. process.env.NODE_ENV理解

    1.理解NODE_ENV 在node中,有全局变量process表示的是当前的node进程.process.env包含着关于系统环境的信息.但是process.env中并不存在NODE_ENV这个东西 ...

  10. devops 运维平台相关知识

    1.https://choerodon.io/zh/community/ (代码 https://github.com/choerodon/choerodon) 猪齿鱼 2.https://www.o ...