我正在尝试在Ubuntu 16.04上构建和运行PY-faster-RCNN模型。
但是,当我运行./tools/demo.py
(如安装指南中所述)时,我会收到以下错误:
➜ 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之前,我已经在我的~/code/caffe
文件夹中安装了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
然后,我将PY-FASTER-RCNN存储库克隆在我的~/WEB/DeepLearning
文件夹中。
之后,我遵循了回购中的安装说明:
- 克隆回购
-
cd $FRCN_ROOT/lib && make
-
cd $FRCN_ROOT/caffe-fast-rcnn
-
make -j8 && make pycaffe
(我没有运行) -
cd $FRCN_ROOT && ./data/scripts/fetch_faster_rcnn_models.sh
-
cd $FRCN_ROOT && ./tools/demo.py
因此,安装指南中的步骤4说我必须在$FRCN_ROOT/caffe-fast-rcnn
文件夹中构建caffe
和pycaffe
。caffe-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
文件夹中?
以及通过运行sudo make distribute
在~/code/caffe/distribute
中生成的distribute
文件夹呢?有用吗?如果是这样,我应该如何使用它?官方文件对此并不十分清楚。
关于如何使用已经建立的CAFFE框架与其他项目这样的其他项目的简单,清晰且详细的解释真的很有帮助。
我为此而努力一段时间,然后将其工作如下。
首先,检查PYTHONPATH
ENV变量。它应该具有python路径,例如。根据您的Python版本和安装
PYTHONPATH = /usr/lib/python2.7
如果它是空的,则可以用python壳中捕获的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/PYTHON 文件仪来更新PYTHONPATH
ENC变量。对此,就像
export PYTHONPATH = /home/mypc/caffe-master/python:$PYTHONPATH
注意: - 您不需要重建Caffe,而是正确地在Pythonpath Envible中配置Caffe和Python。