设为首页 收藏本站
查看: 1150|回复: 0

[经验分享] Windows+Caffe+VS2013+python接口配置过程

[复制链接]

尚未签到

发表于 2017-6-29 11:30:44 | 显示全部楼层 |阅读模式
  前段时间在笔记本上配置了Caffe框架,中间过程曲曲折折,但由于懒没有将详细过程总结下来,这两天又在一台配置较高的台式机上配置了Caffe,配置时便非常后悔当初没有写到博客中去,现已配置好Caffe,故应当立即写到博客中去,不可再拖延~
  准备工具:Win7(64位);Caffe;vs2013;anaconda;
  (附注:1.Caffe下载链接:https://github.com/Microsoft/caffe(这其中有两个版本,一个是Caffe-Windows(微软制作),一个是Caffe-Master(贾教授的作品),两者区别就是Master共16个项目,比Windows多一个Caffe Managed 项目,笔者用的是Master版本,不过网上用Caffe-Windows的也很多,应该都可以用。。
  2.VS2013迅雷下载链接:http://download.microsoft.com/download/B/1/9/B1932B8C-1046-4773-A1DD-4AB5C0978637/vs2013.2_ult_chs.iso,笔者这里用的VS2013的update2版本,之前在笔记本上用的是update5版本没出什么问题,现在在台式机上用update5版本,在加载Caffe项目时,提示要升级项目中的库(我怀疑update5和VS2015有点联系。。网上说VS2015对Caffe的兼容性并不太好,后来我也出了各种问题,有可能是我操作的问题,各位可以自行操作)
  3.anaconda下载:直接上Anaconda的官网,找到对应于自己的系统,所用Python版本的anaconda,下载下来,笔者这里用的是ananconda2。
  4.再附一下matlabR2013a的链接,防止以后要用m接口:
  [矩阵实验室].Matlab.2013awww.downpk.com.iso (5.63 GB)
  
  下载好所需的工具后,我们就开始配置了:
  1.首先解压Caffe-Master文件夹,复制Windows->CommanSetting.props.example文件,重命名为CommanSetting.props文件,并删除原始的.example文件,如下:
DSC0000.png

  如果不删除.example文件,打开.props文件时,可能就会出现如下的问题:
DSC0001.png

  2.用VS打开Windows->Caffe.sln解决方案,在CommanSettings.props文件中修改相应内容:
  (笔者这里只用CPU和Python接口)
DSC0002.png

  注意!这里只需要修改上图中的第7、8、13、48行,其他地方不要修改!!!要不然编译的时候会出现各种语法错误以及其他*疼的问题。。。
  对了,这里有可能出现libcaffe和test_all加载失败的情况,这时候删掉Caffe-Master文件夹,重新进行解压,重新打开,基本可以解决:
DSC0003.png

  3.修改好配置文件后,就可以进行编译Caffe了(注意:一定要使用Release格式,要不然后期用caffe.exe训练网络时时间很长):
DSC0004.png

  这时候,会弹出一个框,表示正在在下第三方库,里面包括openCV之类的库,下载完后可以发现:
DSC0005.png

  不过如果是学校的网,由于是内网,下载速度将会很慢,可能会各种无响应或者无法连接到远程服务器等等(我当时花了n个小时,阿西吧。。),各位可以在网上下载好NuGetPackages文件夹直接放在Caffe-Master并列文件夹中,编译之前进行如下操作:
DSC0006.png

DSC0007.png

  取消掉上图中的两个钩,不过这种方法笔者没有试(快要放弃的时候NuGet程序包还原好了。。。,注意,若用内网下载的时候最好不要进行操作。。。)
  编译中间可能会出现以下几种情况:
  (1)生成解决方案失败,提示说无法打开libcaffe.lib之类的error。解决方法是直接对libcaffe重新生成,或者直接生成一次
DSC0008.png

  然后,接着会出现的问题:没有生成object文件;解决办法:双击此错误,保存弹出来的框,然后再对libcaffe“重新生成一次”
DSC0009.png

  还有出现一些错误有可能有帮助的操作,右击项目,在属性->C/C++->常规中,设置 将警告视为错误 为否。
  还有可能是提示无法打开包括文件python.h之类的,可以先在配置文件里取消python接口,编译整个项目,这个错误就不会产生,然后再将pycaffe设为启动项目,同时设置python接口,再编译pycaffe即可;
  出现其他错误就需要各位自己在网上进行搜索了。。。。。
  编译成功后,设置属性:
DSC00010.png

DSC00011.png

  然后运行caffe.cpp,按ctrl+F5进行编译:
DSC00012.png

  如果出现一下情况:
DSC00013.png

  解决办法是重启电脑
  出现下面的窗口说明编译成功:
DSC00014.png

  以上,我们就暂时配置好了Caffe,现在我们可以用Caffe来跑一下最简单的mnist数据集,方法如下:
  1.(1)去官网http://yann.lecun.com/exdb/mnist/下载mnist数据集。
DSC00015.png

  下载后解压到E:\caffe\data\mnist,放在两个文件夹中,如下图所示:
DSC00016.png

DSC00017.png

  2。在caffe根目录下,新建一个create_mnist.bat,里面写入如下的脚本:
DSC00018.png

  然后双击该脚本运行,即可在E:\caffe\examples\mnist下面生成相应的lmdb数据文件:
DSC00019.png

DSC00020.png

  3.
修改E:\caffe\examples\mnist\lenet_solver.prototxt,将最后一行改为solver_mode:CPU,

修改E:\caffe\examples\mnist\lenet_train_test.prototxt,如下所示,左面为原始的,右面为修改后的:

DSC00021.png

4.在caffe根目录下,新建train_mnist.bat,然后输入如下的脚本:

DSC00022.png

当然笔者在这里也将Release改成了Rebug~

然后双击运行,就会开始训练,训练完毕后会得到相应的准确率和损失率

DSC00023.png



好了,现在我们来配置python接口:

对pycaffe项目进行编译,设置为Release方式,编译好后,会在E:\caffe\caffe-master\Build\x64\Release中找到pycaffe文件夹,将其复制到E:\Anaconda2\Lib\site-packages即可,然后在python.exe输入import caffe,一般会出现no mpodel named google.protobuf这种错误,注意这里要在cmd中使用

pip.exe install protobuf命令(不要用conda install protobuf指令,会出现UnicodeEncodeError错误;使用pip指令前要先安装pip,使用conda install pip即可,安装好后某些人使用pip install protobuf时可能会出现'install' is a unknown or unsupported command的情况,这种情况是由于

你的电脑还安装了其他pip.你可以使用 where pip来查看)

安装好后,再使用import caffe就可以了,至此,所有配置就大功告成了,在这里建议各位配置的时候千万要静下心来,遇到错误要积极地搜索,还有就是搜索的时候不要畏惧英文网站,其实好多很好的回答就在上面(比如我之前的ipip指令遇到的install问题),只是大部分人容易一看到英文就畏惧了,

所以一定要静下心来,一步一步分析,逻辑推理,找出问题错误所在,并找出解决方法,这将是一种非常好的科学品质~

参考博客:    http://www.cnblogs.com/cxyxbk/p/5902034.html

                  http://blog.csdn.net/zb1165048017/article/details/51355143?locationNum=6&fps=1

  http://blog.csdn.net/qq_14845119/article/details/52415090

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-389283-1-1.html 上篇帖子: 利用Rsync在windows和linux之间同步数据 下篇帖子: java最简单的知识之创建一个简单的windows窗口,利用Frame类
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表