去年这个时候,曾经编译过一次caffe,途中也遇到了很多问题,但是编译成功后就没关过了,这次因为服务器的原因又需要重新编译,本以为会得心应手,但事实证明“没那么简单”,所以这次一定要写篇博客记录一下。
1.上github上下载caffe源码:git clone https://github.com/bvlc/caffe,但我们的服务器在隔壁实验室,git的时候出了错:
我还很蠢地去google、百度了一大推解决办法,当然搜出来的一般都没什么用,最后发现是因为服务器没联网,我真的想去go die;
2.进入caffe的根目录:cd caffe ,执行: mv Makefile.config.example Makefile.config ,然后对应你的环境去注释掉一些语句,比如我是GPU&OPENCV&cuDNN环境,那么我就需要解注释这三条语句,结果如下:
然后一般你直接去make all几乎都要出错,错误大概是提示你找不到hdf5.h文件,所以你还需要修改这个文件( Makefile.config )里面的INCLUDE_DIRS和LIBRARY_DIRS,我的改了过后是这个样子(ps:中间记得打空格):
3.在caffe的根目录中执行make all,应该不会报错了~~~,执行完后,再执行make pycaffe,可能出现如下错误:
Makefile:498: recipe for target 'python/caffe/_caffe.so' failed make: *** [python/caffe/_caffe.so] Error 1
解决办法:1.查看自己的python-numpy是否正确安装,执行:sudo apt-get install python-numpy,与此同时,查看Makefile.config中PYTHON_INCLUDE的路径是否正确,与你用的python版本是否相同,以下是我的路径:
做好这些后执行make pycaffe应该就成功了;
4.执行make test,我在执行这个的过程中出现了一个opencv的错误,google一番后在github上找到了一个亲测有效的办法,我执行完这些语句后就能成功make test了:
5.最后一步,执行:make runtest,以为就要大功告成了,结果又出现了一个错误:
"libcudart.so.8.0 cannot open shared object file: No such file or directory"
检查无误后,执行source /etc/profile,使此配置文件生效;如果你此时make runtest还是要报错,那就复制相应文件,执行以下:
至此大功告成:
结语:搜问题的时候可以直接在github里面相应项目里的issues里面去搜索,或者上stackflow,点赞高的答案一般都有效,说看不懂英语的,那可以每天多背背单词,总有一天你会看懂。