win10+caffe+GPU

时间:2021-11-26 15:55:45

由于学习需要,决定安装caffe,之前用的都是基于theano的keras。听说win下caffe很难配置,经过一个下午和晚上的配置终于成功,以此记录。

我的电脑:win10 64位,N卡GTX950,Visual Studio 2013,MatLab 2014a, Anaconda2,PyCharm2016.

          由于之前使用win下的theano和keras,所以安装了anaconda2,确实很好用,建议使用python的话还是装anaconda比较简单。

安装caffe前提要求:电脑系统win7,8,10都可以;显卡只有N卡可以用Cuda,利用GPU加速,非N卡就利用CPU就好;此外需要用matlab或python(推荐)编程的再下载对应软件。

安装步骤:

1.安装cuda和cuDNN(无GPU则无需安装)

因为网上有各种失败案例,所以要注意版本问题。官网即可下载,cuda我下载的是cuda_8.0.44_win10. cuDNN我下载的是cudnn-7.0-win-x64-v4.0(网上对cudnn 版本有争议)。

安装cuda8.0(进官网点击download一步一步来,安装时一直点下一步即默认装到C盘)和cudnn v4(下载下来解压,解压后会有一个名为cuda的文件)即可。

注:官网下载cudnn时会要求注册,填完信息注册完成后,选着cuDNN v4 或者 cuDNN v5 (这取决于 CommonSettings.props 文件里标注支持的版本,建议选择 cuDNN v4 Library for Windows)安装尽量默认路径。

cuda:

win10+caffe+GPU

cudnn:

win10+caffe+GPU

要实现gpu加速,以上步骤一定认真安装。

2.下载caffe

一种是直接上caffe官网:https://github.com/BVLC/caffe/tree/windows,这种方法需要自己装CuDNN。

另一种是用happynear的caffe-windows:https://github.com/happynear/caffe-windows,这个方法作者已经提供了打包好的第三方库。

因为我自己装的CuDNN,所以我采取第一种方法。下载完后,解压文件,得到一个叫caffe-master的文件夹。我装到了E盘,即E:\caffe-master

3.caffe环境整合

打开caffe-master文件夹,然后看到一个windows文件夹,然后继续打开windows文件夹,看到里面一个CommonSettings.props.example文件,复制出来一份,并改名字为CommonSettings.props。完成过后如下图:

win10+caffe+GPU

然后打开到 caffe-master/caffe-master/windows 文件夹,用 VS2013 运行 Caffe.sln 文件,检查解决方案中的项目,重点看libcaffe和test_all是否成功地被导入。

win10+caffe+GPU

win10+caffe+GPU

第一次应该是这两个显示加载失败的,解决方法如下:

关闭VS,打开 CUDA 安装路径中的 MSbuildExtensions 文件夹,如果你在之前安装时选的是默认路径,那么它应当在 c 盘 / Program File/NVIDIA GPU Cpmputing Toolkit/CUDA/8.0/extras/visual_studio_integration 里

win10+caffe+GPU

拷贝 MSbuildExtensions 文件夹中的所有文件,复制到 C 盘 / Program File(x86)/MSBuild/Microsoft.Cpp/v4.0(这里取决于你安装的版本)/V120/BuildCustomizations 文件夹下,替换目标中的文件

win10+caffe+GPU

这时打开VS,发现他俩不再显示加载失败了。

点击 VS2013 里右边的 CommonSettings.props 文件

第 7行 false 保持为false(不是只要用CPU,所以为false)

第 8 行 false 改为 true(要用cudnn,所以为true)
第 9 行 7.5 改为 8.0(我的cuda版本为8.0)
第 13 行 false 改为 true(支持python所以为true)
第 24 行 改为你的 cuDNN 的解压文件中 cuda 文件夹的路径

win10+caffe+GPU

如我把 cuda 文件夹复制到 E盘 / cuda7 文件夹下,则我在 CommonSettings.props 中路径应当为 E:\cuda7

win10+caffe+GPU

第 48 行改为 Anaconda2 的安装文件夹,我的Aanconda2在D盘。

win10+caffe+GPU

4. 编译

编译顺序:libcafffe->caffe->pycaffe

1)编译libcaffe:右击右侧libcaffe,选择属性,打开如下libcaffe属性页:按照如下修改

win10+caffe+GPU

然后开始编译libcaffe,点击win10+caffe+GPU绿色三角即可,结果会很漫长等待,最后可能会有错误,我的确实出现错误,和大家的错误基本一样,大致是如下:无法打开libcaffe.lib:

win10+caffe+GPU

网上的解决方案是对libcaffe单独重新生成,如下图所示:

win10+caffe+GPU

然后重新编译,但这样的话会出现另外一个错误:   error C2220:警告被视为错误-没有生成“object”文件

如果出现这样的错误,请打开项目-属性按照下图进行更改:

win10+caffe+GPU

如果已经改好的话,应该就不会再出现错误。我在运行的过程中出现了上面提及的两个错误,通过重新生成和将警告是为错误这两个解决方法,最终编译正确。

编译完成后,caffe_master文件夹下应该生成了一个名为Build的文件夹,以后编译的成功和运行需要的文件都会存放在..\build\X64\Relase下面。

2)编译caffe

在Visual Studio 2013的解决方案上面右击选择属性(properties)

win10+caffe+GPU

出现  解决方案“caffe”属性页:按照如下设置,也有教程说选单启动项目,好像都可以。

win10+caffe+GPU

这个过程更慢,过程需要联网因为可能会FQ,这个过程的结果是为了下载caffe需要用到的第三方库:NugetPackages(里面有16个文件)

win10+caffe+GPU

可能有的人中途失败或其他原因,所以网上有人把这个包下载好了,可以直接拿来放到上图路径即可。

放到和caffe-windows文件夹的同级目录下。这样之后再打开Caffe.sln时能够自动识别出来,提供一个NugetPackages文件夹的压缩包:http://pan.baidu.com/s/1qYpg3bY,提取码f2zx。

最终编译完成后,会在Release下出现caffe.exe,如果出现说明编译成功。

win10+caffe+GPU

测试:直接打开与右侧的caffe.cpp,按Ctrl+f5执行。

win10+caffe+GPU

执行结果:下图为结果即ok!

win10+caffe+GPU

3)编译pycaffe

我在编译的时候是直接点击pycaffe,直接运行即可,结果也正确,没有出现任何错误或者警告。网上好多教程是要配置路径(出错时),这里不再赘述。

5.测试

首先下载mnist数据集http://yann.lecun.com/exdb/mnist/,这里需要注意的是caffe并不直接通过下载得到的四个文件进行训练,而是会把它转化为lmdb或leveldb格式进行读取。lmdb是lightning(闪电的) memory-mapped database manager的缩写,能够把原始数据通过更为高效的存储方式存储,从而加快读取和训练速度(lmdb比leveldb更快,可以看看刚刚的NugetPackages文件夹,当中就包含着对应的库)。

实现这个转化的代码是\examples\mnist的convert_mnist_data.cpp,但也没必要看,因为它的运行脚本create_mnist.sh显然是linux下的东西。有教程绍如何实现自己的数据集向lmdb和leveldb转换。目前更很好的办法就是直接网盘下载,这里分享一个http://pan.baidu.com/s/1c2G9qyk 提取码xama。

里面是已经经过转换的leveldb格式的训练集和测试集,把这两个文件夹直接放到\examples\mnist目录下,如下图所示:

win10+caffe+GPU

如果你没有gpu,则要改一个部位:

首先用VS打开\examples\mnist目录下的lenet_solver.prototxt,将最后一行改成CPU:

win10+caffe+GPU

如果有gpu则不用改动。

可以看到,这个文件是对网络训练参数进行指定:max_iter指定了最大迭代次数,snapshot是输出中间结果。上图中的参数已经修改过,初始的max_itersnapshot是10000和5000。

接着再用VS打开\examples\mnist目录下的lenet_train_test.prototxt,做如下修改以正确指定训练集和测试集。

win10+caffe+GPU

这里额外介绍下caffe-windows采用的LeNet-5模型,也就是上图中layer的定义方式。提供该模型的原始资料以供参考:http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

完成上述工作后就可以编写bat脚本进行正式训练了。回到caffe-windows的根目录下新建一个run.txt并写入以下内容:

win10+caffe+GPU

即在下图的路径中,先新建一个mytrain.txt(名字随意),然后写入上图内容,保存时另存为mytrain.bat。

win10+caffe+GPU

如上图,即mytrain.bat

(  bat文件是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。)普及下。。

后缀名改成bat后双击运行,出现类似如下的训练过程:

win10+caffe+GPU

好了,在我gtx950的gpu下,速度蛮快的,大约十多秒跑完:

win10+caffe+GPU

win10+caffe+GPU

OK,吃饭去!

补充下参考博客:

多多参考,才能仔细认真

http://www.cnblogs.com/yixuan-xu/p/5858595.html     从零到一:caffe-windows(CPU)配置与利用mnist数据集训练第一个caffemodelhttp://www.cnblogs.com/marso/p/caffe_win10_python.html     http://www.cnblogs.com/marso/p/caffe_win10_python.html

http://www.cnblogs.com/marso/p/caffe_win10_python.html      基于Windows10 x64+visual Studio2013+Python2.7.12环境下的Caffe配置学习

cn.bing.com/?FORM=Z9FD1                   Windows10+GTX950m+VS2013 环境下编译 Caffe(网页音乐不错23333)

http://www.2cto.com/kf/201612/575865.html    Windows 10下安装配置Caffe并支持GPU加速

http://blog.csdn.net/yingwei13mei/article/details/53890072       Caffe之win10版安装小结--细数自己遇到的各种坑

http://blog.csdn.net/qq_14845119/article/details/52415090       Windows下caffe安装详解(cpu+gpu+matcaffe+pycaffe)

http://m.blog.csdn.net/article/details?id=51549105      【caffe-Windows】caffe+VS2013+Windows+GPU配置+cifar使用

http://blog.csdn.net/happynear/article/details/45372231        如何快糙好猛地在Windows下编译CAFFE并使用其matlab和python接口

 
 

相关文章