【神经网络与深度学习】Win10+VS2015 caffe环境搭建(极其详细)
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环境搭建(极其详细)的更多相关文章
- 深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3
紧接着上一篇的文章<深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动>,这篇文章,主要讲解如何安装CUDA+CUDNN,不过前提是我们是已经把N ...
- 深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动
前几天把刚拿到了2台GPU机器组装好了,也写了篇硬件配置清单的文章——<深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装>.这两台也在安装Ubuntu 16.04和108 ...
- 深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装
一.硬件采购 近年来,人工智能AI越来越多被人们所了解,尤其是AlphaGo的人机围棋大战之后,机器学习的热潮也随之高涨.最近,公司采购了几批设备,通过深度学习(TensorFlow)来研究金融行业相 ...
- 【神经网络与深度学习】转-caffe安装吐血总结
这周安装了caffe的windows版本和Linux版本,依赖关系太多,如果系统选对了,安装起来很easy,选错了,就会遇见各种坑. 1.操作系统最好使用ubuntu desktop 14.04 64 ...
- 【神经网络与深度学习】【CUDA开发】【VS开发】Caffe+VS2013+CUDA7.5+cuDNN配置过程说明
[神经网络与深度学习][CUDA开发][VS开发]Caffe+VS2013+CUDA7.5+cuDNN配置过程说明 标签:[Qt开发] 说明:这个工具在Windows上的配置真的是让我纠结万分,大部分 ...
- 【神经网络与深度学习】【CUDA开发】caffe-windows win32下的编译尝试
[神经网络与深度学习][CUDA开发]caffe-windows win32下的编译尝试 标签:[神经网络与深度学习] [CUDA开发] 主要是在开发Qt的应用程序时,需要的是有一个使用的库文件也只是 ...
- 【神经网络与深度学习】【Qt开发】【VS开发】从caffe-windows-visual studio2013到Qt5.7使用caffemodel进行分类的移植过程
[神经网络与深度学习][CUDA开发][VS开发]Caffe+VS2013+CUDA7.5+cuDNN配置成功后的第一次训练过程记录<二> 标签:[神经网络与深度学习] [CUDA开发] ...
- (转)神经网络和深度学习简史(第一部分):从感知机到BP算法
深度|神经网络和深度学习简史(第一部分):从感知机到BP算法 2016-01-23 机器之心 来自Andrey Kurenkov 作者:Andrey Kurenkov 机器之心编译出品 参与:chen ...
- [DeeplearningAI笔记]神经网络与深度学习人工智能行业大师访谈
觉得有用的话,欢迎一起讨论相互学习~Follow Me 吴恩达采访Geoffrey Hinton NG:前几十年,你就已经发明了这么多神经网络和深度学习相关的概念,我其实很好奇,在这么多你发明的东西中 ...
随机推荐
- django 进行语言的国际化及在后台进行中英文切换
项目的部署地为: 中国大陆与美国东海岸, 两个地区的服务器数据不进行同步, 中国地区的服务器页面展示中文, 美国地区的服务器页面展示成英文, 项目后台使用python编程语言进行开发, 并结合djan ...
- linux中>/dev/null 2>&1和2>&1 > /dev/null
转载:https://www.cnblogs.com/520playboy/p/6275022.html 背景 我们经常能在shell脚本中发现>/dev/null 2>&1这样的 ...
- Linux中的CentOS 6克隆之后修改
Centos6 克隆后的简单的网络配置 第一步:修改主机名 $ vi /etc/sysconfig/network 第二步: $ vi /etc/udev/rules.d/70-persis ...
- DNS隧道
自己使用的dns隧道通过两种方法,一种是通过dnscat2工具,另一种通过cs上的beacon来进行通信. 第一种方法:dnscat2: 参考文章:https://xz.aliyun.com/t/22 ...
- Django API接口FK ManyTo Many 模板
Url from django.contrib import admin from django.urls import path, re_path from django.urls import i ...
- [bzoj 4176] Lucas的数论 (杜教筛 + 莫比乌斯反演)
题面 设d(x)d(x)d(x)为xxx的约数个数,给定NNN,求 ∑i=1N∑j=1Nd(ij)\sum^{N}_{i=1}\sum^{N}_{j=1} d(ij)i=1∑Nj=1∑Nd(ij) ...
- gin+redis
var RedisDefaultPool *redis.Pool func newPool(addr string) *redis.Pool { return &redis.Pool{ Max ...
- 异步编程(回调函数,promise)
一.回调函数 ①概念:一般情况下,程序会时常通过API调用库里所预先备好的函数.但是有些库函数却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务.这个被传入的.后又被调用的函数就称为回调函 ...
- 完美兼容IE10以下所有版本
IE一直是个恶心东西 各种不支持 现在发现了个好东西可以兼容ie10以下所有浏览器 <!--[if lte IE 9]><script>window.location.href ...
- [RN] React Native 生成 Android APK
在用模拟器或者真机调试完App后,需要将App打包成Apk发布文件. 下面简单记录下打包步骤: 第一:生成签名密钥 这一步的操作主要是生成需要的签名密钥,供android调用,生成的文件待用 在项目根 ...