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的训练集吧!