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. 在linux中使用Sqlplus命令登录MySQL,查看表并设置行数和宽度,使其正常显示

    在linux中使用sqlplus命令进入MySQL,设置行数和行宽   1) 查看目前的pagesize,默认是14: 1.      show pagesize;    2.      set pa ...

  2. nginx1.15.10配置使用非https访问返回403

    nginx版本号:nginx version: nginx/1.15.10 server { listen 443 default ssl; server_name app.test.com; if ...

  3. fullcalendar + qTip2显示事件详情

    fullcalendar 是一个很优秀的日历插件.qTip2 是一个强大的提示工具.在讲下面的功能之前,需要对fullcalendar 和 qTip2 有些了解,可直接点击下面贴出的2个地址: ful ...

  4. window对象(全局对象)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 02-Flutter移动电商实战-建立项目和编写入口文件

    环境搭建请参考之前写的一篇文章:Flutter_初体验_创建第一个应用 1.创建项目 采用AndroidStudio构建本项目,FIle>New>New Flutter Project… ...

  6. spingboot jar 包启动遇到得坑

    先摘抄一篇文章 pringboot打成jar包后,可直接用java -jar app.jar 启动,或者使用 nohup java -jar app.jar & 后台启动,也可以将 jar包链 ...

  7. .net core 多sdk 多版本 环境切换

    在讲述.net core多版本之前,我们先理解一下.net core sdk与.net core runtime之前的联系与区别,根据官网的解释我们可以简单地理解为:sdk是在开发过程中进行使用,而r ...

  8. WinDbg常用命令系列---!htrace

    !htrace 简介 !htrace扩展显示一个或多个句柄的堆栈跟踪信息. 使用形式 用户模式!htrace [Handle [Max_Traces]] !htrace -enable [Max_Tr ...

  9. SQL基础-连接表

    一.连接表 1.SQL JOIN 忘记在哪保存的某位网友的图,先明白SQL JOIN, 2.关于笛卡尔积 笛卡尔积: 两个集合的乘积 重新建student表和teacher表: student表: C ...

  10. TODO list(咕咕咕。。。

    1. Segment Tree Beats 2. ZR集训补题(还剩10题) 3. 尽可能将各种数据结构写得熟练...(某神仙:要把平衡树写得跟线段树一样熟练) 4. 树相关数据结构和算法(dsu o ...