caffe 配置坑的总结

关于前面安装各种依赖的步骤,以及caffe的git clone都不多说,基本跟网上很多相同,只是后续的步骤有些比较常见的问题,特此总结。

常见问题:

(1)在python环境下,import caffe,显示No Module named caffe.

原因:没有把caffe里面的python接口库添加到python的module搜索路径。可以进入python,import sys,sys.path,查看当前的module搜索路径。

解决办法:export PYTHONPATH=$PYTHONPATH:your/caffe/path/about/python

(1.1)有时候也会遇到segment fault 11,这个之前网上有人说过解决办法有点复杂,这个问题其实也是caffe编译的python版本,和shell里用的版本不一致导致。最好的解决办法就是,只留一个版本的python,不要装anaconda和brew的版本,然后重新编译caffe,详见(2)。

  (2) 上述都配置好了,import caffe也没问题,但是后续的各种深层调用会出错,比如一些基本库,collections,site...

原因:主要的可能是,caffe编译时候,依赖的python版本,和你现在使用的版本不一致,导致虽然都是python,但是版本不同。

解决办法:尽量保持电脑中只有一个版本的python。mac系统自带的就不错,anaconda或者homebrew安装的,除非特别必须,不建议装很多。

然后,shell中查看当前用的python,which python,最好将当前python的安装路径也添加到/etc/bashrc中,记得source一下,mac自带的python路径通常为/System/Library/Frameworks/Python.framework/Versions/2.7/bin。

接着,进入caffe文件夹,rm -rf build;mkdir build;make clean;make -j4;make pycaffe;

还有个好用的命令可以查看某个库的编译依赖项及版本:otools -L _caffe.so(这个是caffe的python接口编译后的静态库)

最后看到没有错误提示,说明成功。

(3)有时会出现,找不到numpy中的一个头文件

原因:caffe中MakeFile.config中的numpy路径不对

解决:进入caffe的Makefile.config文件,仔细查看有关PYTHON_INCLUDE,PYTHON_LIB的路径部分,都修改对,该注释的注释掉。然后重新编译如(2)所说。

(4)关于跑别人demo的经验

在caffe配的没有问题的情况下,主要是solver中用到的训练网络或者测试网路的data source path,一定要仔细改对。用python接口的时候,常常会写一个data provider的py文件,这个文件会配合train.prototxt(或者val.prototxt)中的网络,说明使用哪个provider为该网络提供数据。通常都是先把图片的路径写到文本中,再根据这个文本去读图片,这个文本通常是train.txt或者test.txt。

 

posted @ 2017-01-19 16:34  吕吕吕吕吕  阅读(2054)  评论(0编辑  收藏  举报