运行py-faster-rcnn时如何使用已经构建的Caffe?

时间:2016-12-12 20:54:21

标签: python-2.7 path deep-learning caffe pycaffe

我正在尝试在我的Ubuntu 16.04上构建并运行py-faster-rcnn模型。

但是,当我运行./tools/demo.py时(如installation guide中所述),我收到以下错误:

➜  py-faster-rcnn git:(master) ✗ ./tools/demo.py
Traceback (most recent call last):
  File "./tools/demo.py", line 18, in <module>
    from fast_rcnn.test import im_detect
  File "/home/denis/WEB/DeepLearning/py-faster-rcnn/tools/../lib/fast_rcnn/test.py", line 16, in <module>
    import caffe
  File "/home/denis/WEB/DeepLearning/py-faster-rcnn/tools/../caffe-fast-rcnn/python/caffe/__init__.py", line 1, in <module>
    from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
  File "/home/denis/WEB/DeepLearning/py-faster-rcnn/tools/../caffe-fast-rcnn/python/caffe/pycaffe.py", line 13, in <module>
    from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \
ImportError: No module named _caffe

在尝试安装py-faster-rcnn之前,我在Caffe文件夹中安装了~/code/caffe,它似乎工作正常:

➜  ~ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
>>> print caffe.__version__
1.0.0-rc3

所以,如果我可以在python环境中导入caffe模块,我假设我已成功安装它。

以下是我使用的命令(来自官方指南):

sudo make all
sudo make test
sudo make runtest
sudo make pycaffe
sudo make distribute

然后我克隆了~/WEB/DeepLearning文件夹中的py-faster-rcnn存储库。

之后我跟随了回购中的installation instructions

  1. 克隆回购
  2. cd $FRCN_ROOT/lib && make
  3. cd $FRCN_ROOT/caffe-fast-rcnn
  4. make -j8 && make pycaffe(我没有这样做)
  5. cd $FRCN_ROOT && ./data/scripts/fetch_faster_rcnn_models.sh
  6. cd $FRCN_ROOT && ./tools/demo.py
  7. 因此,安装指南中的第4步说我必须在caffe文件夹中构建pycaffe$FRCN_ROOT/caffe-fast-rcnncaffe-fast-rcnn文件夹的内容似乎与我构建caffe的原始Caffe存储库相同。

    所以,似乎我不需要再次构建caffe,对吧?在尝试运行演示时,我跳过了构建caffe的步骤并得到了上述错误。

    谷歌搜索了一段时间后,我发现我的问题与路径环境变量有关,所以下面是.bashrc中的路径变量:

    export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:~/code/caffe/distribute/lib:$LD_LIBRARY_PATH
    
    export CPLUS_INCLUDE_PATH=/usr/include/python2.7
    
    export PYTHONPATH=~/code/caffe/python:$PYTHONPATH
    

    我做错了什么,我不得不以某种方式改变我的路径变量? 或者我真的需要再次构建caffe,但是在caffe-fast-rcnn文件夹中?

    通过运行distribute,我在~/code/caffe/distribute生成的sudo make distribute文件夹怎么样?它有用吗?如果是这样,我应该如何使用它?官方文件不是很清楚。

    关于如何将已经构建的Caffe框架与其他项目(如Faster-RCNN)一起使用的简单,清晰和详细的解释将非常有用。

1 个答案:

答案 0 :(得分:1)

我挣扎了一段时间,然后按照下面的方式工作。

首先,检查PYTHONPATH env变量。它应该有python路径,例如。基于您的python版本和安装

PYTHONPATH = /usr/lib/python2.7

如果它为空,则可以使用python shell中捕获的python路径进行设置。要检查python路径信息,请打开python shell并在下面输入

>>import sys
>>for p in sys.path
...  print(p)

它将列出所有python路径信息,例如

...
/usr/lib/python2.7
/usr/lib/python2.7/plat-x86_64-linux-gnu
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
...

如果你已经安装了caffe并希望它配置为由python使用,你只需要通过添加 / caffe-installation-path / python <的路径来更新你的PYTHONPATH env变量/ strong>文件夹,如

export PYTHONPATH = /home/mypc/caffe-master/python:$PYTHONPATH

注意: - 您不需要重建caffe,而是正确配置PYTHONPATH env变量中的caffe和python。