现在深度学习非常火爆,以前也零星学习过一些机器学习方面的知识,但是一直没有用深度学习真正去做过什么项目,最近想用深度学习去做一些图像检测和识别方面的项目,逼迫自己去动手学习一些流行的深度学习开源框架,据说Caffe是最容易上手的,因此首先得把Caffe安装起来,本文就是纪录自己在windows环境下搭建Caffe的全过程,参考了网上一些博客,碰到过一些别人没有碰到过的坑,也避开了别人曾经碰到的坑,下面就是整个搭建过程。
Cuda是NVIDIA推出的GPU加速运算平台。 首先确认自己的显卡是Nvidia的且支持。进入官网: [https://developer.nvidia.com/cuda-downloads](https://developer.nvidia.com/cuda-downloads)
到页面下方看到下图所示的下载选项,根据你的系统的环境下载相应的安装包。
此处我下载了一个最新9.1版本,如下图:
安装,直接鼠标点击就行,很简单。大概过程如下:
安装完成之后会检查Nvadia的驱动程序是否与当前windows是否兼容,如下图:
重新去下载Cuda_7.5版本:
下载完之后如图:
重新安装,前面的几个步骤同前,接下来出现下图:
一路点击“继续”,出现如下一系列图:
#3. 下载CuDNN
CuDNN其实是个压缩包,下载地址:https://developer.nvidia.com/cudnn
用邮箱就可以免费注册,注册完成之后去邮件里验证即可。如下图:
然后重新回到下载页面,此时会跳出如下的选择项:
点击之后弹出如下的选项框:
下载完之后如下图:
下载完成后,进行解压,如下图:
三个目录里的文件分别如下:
将相应的bin、include、lib分别放于自己的cuda下面的相应目录中。例如,本人电脑的cuda目录为C:\ProgramFiles\NVIDIA GPU Computing Toolkit\CUDA\v7.5,因此将刚才解压的文件放在这个目录下面的bin、include、lib文件夹下。例如将cudnn64_5.dll复制到bin目录之后:
微软官方也移植了Caffe,在windows下面的配置会比较简单一点:https://github.com/Microsoft/caffe
下载完之后如图:
解压缩,然后打开caffe-master文件夹,然后看到一个windows文件夹,如下图:
然后继续打开windows文件夹,看到里面一个CommonSettings.props.example文件,复制出来一份,并改名字为CommonSettings.props:
用VS2013打开Caffe.sln(就到刚刚那个文件夹里面),打开效果如下:
右键点击libcaffe,选择编译。这个编译过程需要的时间非常久(大约30-50分钟),主要是因为Nuget会下载一些东西,例如:boost、opencv2.4.10、gflags、glog、hdf5、lmdb、LevelDB、OpenBLAS、protobuf等。如下图:
下载完成后会在caffe 的同级目录生成NugetPackages的文件夹,如图:
注意:之所以选择微软官方的版本,是因为在编译过程中会自动下载一些依赖库(见下图)。不用手动选择,所以非常简单方便。进入NugetPackages文件夹,里面的内容如下:
打开libcaffe的工程设置,关闭视警告为错误(即设置为No)。如果不设置的话在编译boost库的时候会由于文字编码的警告而报错。如图:
然后就在开始编译(先编译的是libcaffe),等啊等(要有耐心,千年等一回)就编译成功了。这个时候在刚刚解压出来的caffe-master文件夹下面就会应该出现一个Build的文件夹。如图:
漫长的等待,终于编译成功:
编译成功和运行需要的文件都会存放在Build\X64\Relase下面,如图:
前面已经提示是先编译的libcaffe,在solution上面右击选择属性(properties)。可以发现默认选择的是单任务,只编译libcaffe。这就是为什么之前默认先编译libcaffe。如下图:
接下来,可以选择更多的任务来编译。类似地,我们接下来也可以只选择caffe来编译,同样的要注意release和X64. 如图:
然后类似的build等待。。。发现比刚才多了几个文件,如图:
然后也编译成功啦。。。还有一些其他的需要的时候再编译。。
下面通过一个最简单的网络结构lenet来对刚才安装的caffe进行测试。
1) 首先去官网: http://yann.lecun.com/exdb/mnist/ 下载mnist数据集。首先进入眼帘的是:
在侧边可以看见有4个文件可以下载:
下载后解压到D:\Project\caffe-master\data\mnist,如下图所示。
(2)在caffe根目录下,新建一个create_mnist.bat,里面写入如下的脚本:
此时如果立即双击该脚本文件,会报错,因为我们还没有生成convert_mnist_data.exe 这个可执行文件,因此我们又需要执行前面类似的操作,编译convert_mnist_data 这个工程,编译完成之后,在Build\x64\Release\ 中会有如下的文件:
此时我们可以双击create_mnist.bat 这个脚本文件,仍然出错,如图:
仔细检查,原来是要在data\mnist\ 里面还需要建立两个子目录,把相应的数据文件移动到子目录里。重新双击create_mnist.bat这个脚本文件,此时如图:
在D:\Project\caffe-master\examples\mnist下面生成相应的lmdb数据文件,如图:
(3)打开D:\Project\caffe-master\examples\mnist\lenet_solver.prototxt,定位到最后一行改为solver_mode:GPU,此处我们采用GPU训练。如下图所示:
接下来我们要修改 lenet_train_test.prototxt文件,先做个备份,如图:
打开文件lenet_train_test.prototxt,将其中的source选项的引号中加入“./”,如图:
(4)在caffe根目录下,新建train_mnist.bat,然后输入如下的脚本:
保存之后如图:
然后双击运行,就会开始训练,训练完毕后会得到相应的准确率和损失率。训练如下:
到此为止,我们完成了所有的环境搭建和demo测试。
【同步本人网易博客文章】Caffe + Win10 + GPU + VS2013 菜鸟超详细编译安装过程