Caffe安装笔记三:后记

来源:互联网 发布:2017年微信站街软件 编辑:程序博客网 时间:2024/05/22 00:48

关于这两个星期

简单记录一下这两个星期煎熬的过程。
第一天,装虚拟机,发现vmware12和win8不兼容。试了player12可以,但是想了想还是想装个vmware11。这个时候还是优哉游哉的,不过我倒是很庆幸用了11,因为后面事实证明,快照对于一个linux新手来说实在是太有用了。
第二天,卸了player12,装了vmware11,然后重新装了个12.04的ubuntu。回到了起点。
第三天,装了个ubuntu14的32位版本,说实话我已经记不清楚这几天具体在折腾什么了。在这个32位版本上,第一次跑了装caffe的大致流程,然后……
第四天,遇到了循环登陆的问题,14进不去。另外前一天发现tensorflow似乎没有32位版本,所以一边尝试解决循环登陆,一边准备装64位的系统。
第五天,又一次回到起点,装了个xubuntu,结果发现xubuntu下面安装vmware-tools都成问题。
第六天,考试。
第七天,索性直接安装了ubuntu14.04LTS-64bits版本,然后装了一天caffe。本打算这一天了结,结果还是没成功。这个阶段好像make都没有成功。
第八天,也就是第二个星期的星期一,在公司的笔记本上面make成功,pycaffe成功,import成功。以为自己装成了,后来发现原来是export PYTHONPATH的时候被人误导了,所以出现了成功的假象,这也是后面让我困扰了好多天的问题。这天晚上在家里台式机不成功,找了一晚上没找到原因。
第九天,复制虚拟机,准备直接拷回家,同时发现是export PYTHONPATH设置不同的关系。优哉游哉度过了一天,晚上回家准备学习例程时,执行了
from caffe import layers as L
然后傻眼了,发现import进来的caffe只是个空壳。然后恐慌地查了一晚上,也不知道原因。
第十天,白天做了很多无用的尝试。具体试了啥已经记不得了。似乎是测试了make runtest,发现c版本的caffe是好的。晚上得到老曹的帮助,成功登上了google的论坛,开始去论坛求助,因为实在没头绪,然后对于apt-get来的lib***-dev和手动安装的区别和联系有了个浅显的认识,在心中默默吐槽国内的那些教程博文。这一天尝试在python2.7上装caffe,用的还是anaconda2,然后遇到了opencv的问题。
第十一天,遵循论坛网友的建议,尝试了在原生python2.7上装caffe。此时终于学会了小心翼翼,学会了及时快照。然后在不使用opencv的前提下安装了caffe。如果要用opencv,可以手动安装,并在安装时配置不使用一个什么库(我记不清了),此时已经身心俱疲。晚上还是想尝试python3,然后问题锁定在boost版本问题上。在论坛网友的帮助下,大致有了个思路,但是仍然解决不了。
第十二天,在网友的进一步指点下,知道了boost需要怎么弄。然后遇到了protobuf的问题。尝试了一个下午,手动安装了正确的版本,并且,这个时候快照发挥了非常重要的作用,在做了几次尝试之后,正确安装了protobuf。然后,caffe安装成功。
当整个安装流程全部完成之后,回过头来看,发现自己在做事方法上有太多需要改进的地方。
第一个就是没有仔细阅读说明书。虽然caffe的官网有太多值得吐槽的地方,既没有完整系统的安装流程,对于python3和python2的依赖库版本需求也没有说明,但是其实仔细去找的话会发现官网上有不少解决问题的线索,只是需要一定的耐心罢了。
第二个就是出现问题的时候没有冷静的分析问题。一方面是容易方,慌寸大乱,乱了阵脚的情况下胡乱尝试,一言不合就重装,定位问题全靠猜,结果浪费了太多时间,做了很多无用的尝试。另一方面,即便是不慌的情况下,也不够认真仔细,行动先于思考,我想用轻浮这个词。
在这些方面还有太多路要走了。这种不能三思而后行的问题,无论是在做人还是做事上,都已经带来了不少的问题。

关于科大

装caffe的这几天,刚好是习主席来访科大。一位0203的校友师兄在朋友圈弄了个公众号,名字叫短钱交易,平常我也不怎么看指数预测,所以那个公众号关注了也只是个摆设,结果那天非常意外地,他写了一篇关于科大的文章,关于科大的精神,做出了很好的诠释,这里做个摘要:
第一个是,"以后从这里毕业,不管进入什么崭新的行业碰到什么难题,只要扔给你两本书,你要有信心也要有能力几个月内成为这个行业的佼佼者。"
第二个是,“很多师兄师姐帮了忙,最后问他们,有没有我可以回馈他们的,最后都是说,以后有师弟师妹需要你的帮助,你也这样帮他们就好。”

看到这篇文章,很热血沸腾的感觉。虽然非常遗憾的是,我既没有很强的自学能力,又没有帮助过什么师弟师妹(虽然从师兄师姐那里获得了许多,但是限于自身能力的问题),不过这篇文章给了我很大的鼓舞。(这么说或许有些夸张,不过在孤军奋战的情况下,举步维艰的状态持续一个星期,确实很打击人,也很消磨人的意志,尤其是,我还稍微有点走火入魔,连续一个星期睡眠不足,体力精力都到了个极限状态。)
虽然我暂时还没有什么能让母校觉得自豪的,但是身为一个科大人,不拿出点骨气来怎么行!?尤其是我所面对的还只不过是一个开源框架的安装,后面还有很长的路要走,倒在这里怎么行!(笑)
另外一个挺鼓舞人的是,有两篇博文,其中一篇的博主在结尾处写了这样的一段话:
​最后还是要谢谢这位博主:普兒,以及这位热心网友:_无声的雨;是你们让我感受的社会的温暖,一次又一次把我崩溃的心灵拯救回来,让我体会到了人间有真情。要是哪位读者去这个博客看看,就能看到我在留言里问的各种小白问题了,哈哈。
我觉得还挺逗的,原来觉得崩溃的不止我一个人,而且多少有些安慰,虽然战斗在不同的时间和空间,但是我不是一个人。同时也给我提供了一些思路吧,原来求助还可以去论坛和博客啊,之前怎么没想起来。
另外一篇博文的博主更逗,他光是装linux就耗费了一个月!人家尚能如此坚持,我这短短一个多星期又算得了什么!?我又有什么理由放弃呢?

关于caffe

关于caffe,有太多槽要吐。我记得是在知乎上看到关于深度学习开源框架的比较,其中有人提到,caffe前期的更新周期太快,而前后向兼容又做得很差,导致经常出现升级caffe后以前的程序就用不了的问题。关于这个,我暂时还没有体会。
不过或许就是因为更新太快的问题,直接导致的结果就是安装指南不针对当前版本。关于caffe官网上的安装指南,有太多值得吐槽的地方。比如,安装首页上标明了boost版本>=1.55,而ubuntu子页面上注明已经测试过14.04,但是给出的命令却是apt-get installlibboost-all-dev。这样装是不行的,装上的是1.54。我暂时还不确定1.54到底行不行,但是这是一个前后矛盾的东西!另外,也有博主提到过,装了1.57,结果后来实际测试发现是只支持1.55和1.56。我不知道他用的哪个版本的python和caffe,或许现在没这个问题了,不过如果有人遇到类似问题,还是请留意一下。
另外是关于protobuf,在python那个子栏目里面,写的是建议安装protobuf-3.0.0
-alpha-1,但是同样的,在ubuntu页面给出的是apt-get install libprotobuf-dev,这样装下来的是2.6.1,你叫我情何以堪?到底以你的哪句话为准?
当然,很多问题是因为我选择了python3才出现的,比如,protobuf2系列不支持python3,支持python3的只有protobuf3-beta。但是官网的这种前后矛盾的说明确实给新手带来了很多的问题。

关于国内论坛

关于国内论坛,也有很多要吐槽的。我估计大多数人都是基于python2.7去做caffe安装,甚至有人只装了c的caffe,根本没去管python的interface。只有像我这种无知者无畏的人才会想要去安装python3的interface。所以,我到现在没有看到一篇博客有提过python3下面需要uncomment那句PYTHON_LIBARARIES=lboost_python3,python3.5m。
上面一点或许不那么值得吐槽,那下面的呢?
看博客的时候最让我困惑的一点是,为什么apt-get install libopencv-dev之后,还需要手动安装opencv?这两者有何不同?而更有甚者的教程只是把几篇参考博文拿来拼凑而成,里面有好几个地方都在安装libboost-dev,分别装了几次。我不知道这样有什么意义。
所以我的理解是,caffe确实太难装,以至于很多人安装过后都不记得自己究竟执行过啥(我其实也是这样,所以在写博客的时候,我直接用history把自己的历史命令全部调出并留存)。另外,很多博友确实不够认真和细心,而大牛们似乎是由于忙于科研和工程,没有时间把这种基础性的教程拿出来分享。

关于本文

本文旨在提供一种安装思路,关于caffe的安装,由于各个开源库的升级,我不保证在一年后,文中提到的方法依然有效,但是有一些要点应该是在较长时间范围内都需要注意的。
本文分别讨论python2和python3下面的caffe安装,重点放在python3上面。
关于安装中要点的提醒
除了小白错误,真正需要注意的其实只有两点,一个是boost,一个是protobuf。这两样是对于python3版本来说需要特别留心才能够不出错的,如果没有仔细去看makefile(不是makefile.config),很容易因为疏忽而出错(不过对于老手来说或许并不是什么很隐蔽的错误,但对新手来说是的),配置安装相对也有点麻烦。
关于一般安装过程及这两个框架的安装,放到后面两篇当中细说。
0 0