您的位置:首页 > 编程语言 > Python开发

win10下caffe环境搭建: win10 + vs2013 + caffe + CUDA 7.5 + cudnn v4 + Anaconda2 (python 2.7) 目前未使用GPU

2018-02-01 11:57 1011 查看
win10下caffe环境搭建:

win10 + vs2013 + caffe + CUDA 7.5 + cudnn v4 + Anaconda2 (python 2.7) 目前未使用GPU

最近接触了下caffe,想记录一下自己的学习历程,也算是一个笔记吧,也方便自己以后查看。其实网上一些博客写的都非常良心,本人比照着前人经验,用了大概半天就把环境搭好了,下面总结一下windows下的caffe环境搭建。

一、环境搭建

1、资源选择及下载:

因为是第一次接触caffe,所以我没有追求最新的学习资料和应用资源,而是选择了较为稳定的偏旧的环境:windows10(x64)+ vs2013 + caffe + CUDA 7.5 + cudnn v4 + Anaconda2(python 2.7)。下面是资源:

vs2013:链接:https://pan.baidu.com/s/1c3orbSs 密码:51g4

微软官网未找到vs2013 community版的,所以搞了个旗舰版,亲测可用。另外,据说vs2015Community,因为内含2013编译器,所以也可以用。

caffe:https://github.com/Microsoft/caffe

微软版,网上找到的唯一跟博客里描述相似的caffe,含有windows文件夹(这个文件夹在后来的配置过程中会用到)。

(CUDA是 GPU需要用到的,本人因为没有GPU所以未曾用过)

CUDA:https://developer.nvidia.com/cuda-75-downloads-archive

直接从官网下载,注意选择 CUDA版本(7.5)和 实际环境。说来惭愧,本人看博客学习时没注意到博主留的是CUDA官网主页,虽然进去就是下载页面,但是下载的是 CUDA 9.1。。。

后来又卸载,去官网重下什么的,挺费劲的,主要是浪费时间。在这里给大家直接把链接换成了官网里 CUDA 7.5的下载界面了。快赞美我 =.=

cudnn v4:https://developer.nvidia.com/cudnn

直接从官网下,注册个账号就行了。同样注意版本 cudnn v4。据说v5好像也可以,但没有验证过,感兴趣的同学自己折腾吧。生命不息、折腾不止 =.=

(Anaconda2好像是为python提供了接口,总之是为python提供环境)

Anaconda2:https://www.anaconda.com/download

直接从官网下,注意选择 python 2.7版本。

2、资源下载后就是安装:

(1)安装顺序:

虽说没有严格的顺序,但是建议按照vs(caffe不用安装,解压就行了,后来会需要用vs编译)、CUDA (需要cudnn的一些文件复制和替换,后面会说)、Anaconda2的顺序。

(2)安装路径:

虽然许多博客里都说尽量按照默认路径安装,否则可能会出现路径导致的一系列问题,但是本人目前并没有遇到关于路径的问题。嗯,本人全都把路径改了。。。可能是因为还没有用到GPU,,,后期看看再说。。。 愿力量与我同在 =.=

3、环境配置

(1)CommonSettings.props配置文件(即caffe中windows文件夹下的操作)

将E:\caffe-windows\caffe-windows\windows\windowsCommonSettings.props.example文件备份,并改名为CommonSettings.props(注意:后缀名也要改)。如下图:(【注】本文中大部分资源(图片、文本等)是借用的之前博主的,因为感觉做得很好,而且我又比较懒 =.=)。



因为无GPU,所以如下修改复制过来的CommonSettings.props配置文件:



(2)关于cudnn (GPU 相关,本文中虽参照配置了,但未进行测试和使用)

有些博客说V5.0版本是个坑,所以最好还是避开为好(感兴趣的可以自己折腾 =.=),避免多走弯路,这里本人用的是cudnn v4,也有人用的8.0好像也可以。

下载完成后,解压,然后打开环境变量的配置窗口,将E:\cudnn-8.0-windows10-x64-v5.1\cuda文件夹下的三个文件bin,include,lib,拷贝到下图CUDA_PATH对应的路径下,替换即可,CUDA的环境变量不需要配置,你装完CUDA它自己会配置好,这里最好自己配一下CuDNN的路径,就是你解压后放置的路径。如下图:


(3)编译caffe

打开caffe-master\windows下的Caffe.sln,用vs进行编译(双击windows下的caffe.sln,在VS2013中生成解决方案):

官网自带的总共有16个项目,请注意核对。然后点击生成解决方案。


在编译caffe的时候,它会提示你还原nuget包,这个是必须的,可能会未响应,慢慢等吧。如果你身边有人已经还原好了,可以直接拷贝到caffe-windows目录下。

之前博客里的nuget包的下载链接都失效了。。。
为了方便大家解决这个问题,我直接压缩了一个,下载解压放到与caffe-master并列文件夹即可:
链接:https://pan.baidu.com/s/1eTmRdw2 密码:s669

编译caffe还原Nuget时,通常会遇到libcaffe.lib无法打开的错误

当下载完毕,VS仍在继续执行生成任务,最终可能失败,原因下面会提示说无法打开libcaffe.lib之类的error。解决方法是直接对libcaffe重新生成,或者直接重新生成一次。



当这个文件生成成功以后,重复一下上一步,对 所有文件 再重新生成一下,这时候应该不会出现libcaffe.lib无法打开的错误了。下面的PS是之前博主的,虽然没怎么看懂,但还是想留着备用。

【PS】按照这个流程编译下来很少会出现无法解析外部符号问题,出现这种问题有很大可能是静态库没连接好,但是微软的所有库是自动下载的,除非没下载全。还有关于一些.h头文件未找到,请自行核对此头文件的位置,然后再配置文件中随便找个IncludePath(此includePath必须在编译时候被使用),将路径加进去即可,同时也必须注意是否需要相关的lib文件。

当下载完毕第三方库,你的caffe-Windows并列文件夹下会有一个第三方库的文件夹。
【注】caffe-windows和caffe-master对caffe.cpp编译以后下载的第三方库都是16个文件夹。
最好核对一下文件,免得没下载完就被你关掉了。




(4)设置运行项

解决方案’caffe’->属性,选择当前选定项,应用,确定。



或者下面直接单启动项目是caffe也行,不过最好改一下,原因相信玩过VS的都清楚,如果是单启动项目,那么在你重新编译工程的时候,只会运行次单启动项目,其它项目不会运行,这就是为什么很多人编译以后发现Release或者Debug文件夹下只有caffe.exe而没有conver_imageset.exe等可执行文件的原因。

(5)编译运行caffe,并生成caffe文件

(5.1)运行caffe.cpp,直接双击打开caffe.cpp,然后ctrl+f5直接编译,出现如下命令窗口说明编译成功(即环境搭建成功)。



【PS】这个其实告诉你了如何调用caffe.exe去训练你的模型。

在编译caffe时,往往很难一步到位,你可能会像我一样遇到没有生成“object”文件、无法打开lib文件、路径下找不到某文件等问题。不用着急,请参照以下步骤来见检查一下:

①首先看看你当前的 用户名以及包含caffe的路径 下是否有 特殊字符(比如 空格和中文字符),有的话改掉。即使现在不改,后面调用caffe的时候也需要改。血泪史。。。

【注】中文用户名的更改,并不只是在用户文件上的更改,具体可以自行百度。

②没有生成“object”文件,alt_sstream_impl.hpp头文件编码问题。


在项目里双击把alt_sstream_impl.hpp打开又有提示中文编码错误,点击确定后保存一下重新编译就ok了。

(5.2)编译生成caffe文件,选择release 对解决方案进行重新生成。



弄好后是这样:



下面说一下,编译的过程中可能会出现的问题,以下都是之前博主留下的经验:

(1) 如果你在用vs打开项目的时候,出现不兼容的问题,那么这说明你装的vs2013有问题,考虑重装,或者重新下一个vs2013再装,因为一般如果你安装顺利是不会出现该问题的。之前博主,重新下一个vs装了,之后没有再出现这个问题。



(2)还原Nuget所需要的第三方库时,如果出现无法连接的那个问题,说明IP ping不过去,直接把问题复制到网上搜,有解决方法。

(3)重新生成nuget包之后还可能会出现error C1083: 无法打开源文件:

“....srccaffedata_reader.cpp”: No such file ordirectory的错误,这是因为官方删掉data_reader.cpp这个文件,将libcaffe.vcxproj和libcaffe.vcxproj.filters中的 data_reader.cpp 与 data_reader.hpp删掉后就不报错了。然后再对解决方案重新生成一次,应该就不会报错了。

之前博主遇到的问题:本人还未进行相关操作,所以暂时存一下,以备后来学习借鉴。



靠谱的参考资料:

http://blog.csdn.net/juewu1993/article/details/53698794

https://www.cnblogs.com/zy230530/p/6626227.html

https://zhuanlan.zhihu.com/p/22129880

http://www.cnblogs.com/love6tao/p/5706830.html

http://blog.csdn.net/xierhacker/article/details/51834563

后续,可能会把跑的几个例子放上来,或者试着做做GPU的一些实验。

Mnist、cifar10 这两个例子主要是用来熟悉环境的,跑完这两个例子,其实基本就熟悉caffe了。

先写个小结,caffe相当于一个工具箱,它仅

提供了常用于机器学习的几个功能函数的接口(如:caffe.exe用于训练模型,classification.exe用于分类,compute_image_mean.exe用于求均值等);

并规范了使用该工具箱的 输入和输出的数据格式(输入的数据必须是.lmdb和.leveldb类型,如果不是该类型,需要先进行数据转换,只有此两种数据可在caffe内运行;

输出的数据是.caffemodel和.solverstate或者是二者之后 + .h5);

输出的数据几位训练好的模型以及其中间值,可用classification.exe(具体可参考cifar10分类测试)等进行调用。

跑完几个例子后的感受就是caffe里需要注意的就那么几点:

1、使用CPU还是GPU的问题

2、proto文件中规定的各文件的路径问题

3、caffe中自带的train、mean、Classification等功能调用的问题(类似函数:输入是什么,包含几个参数;实现什么功能;输出是什么,输出在哪儿)

4、win下.bat脚本编写或者cmd命令行的问题(承接上面第三个问题,是其具体解决方式,linux下使用caffe感觉与此类似)

【注】最好是直接在caffe根目录下进行操作,便于对应各个文件(只是建议,因为对应文件比较繁琐)。

5、win下使用caffe还要注意 斜杠与反斜杠的问题 / 和 \,慢慢体会(提示一点,在cifar10实验中求mean时,你会体会到的)。

(未完待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  caffe win10 vs2013
相关文章推荐