Как использовать уже построенный Caffe при запуске py-faster-rcnn?

Я пытаюсь собрать и запустить модель py-faster-rcnn на моем Ubuntu 16.04. .

Однако, когда я запускаю ./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, я установил 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

Итак, если я могу импортировать модуль caffe в среду Python, я предполагаю, что установил его успешно.

Вот команды, которые я использовал (из официального руководства):

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

Затем я клонировал репозиторий py-faster-rcnn в свою папку ~/WEB/DeepLearning.

После этого я следовал инструкциям по установке из репозитория:

  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

Итак, шаг 4 в руководстве по установке говорит, что я должен собрать caffe и pycaffe в папке $FRCN_ROOT/caffe-fast-rcnn. Содержимое папки 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?

А как насчет этой папки distribute, которую я создал в ~/code/caffe/distribute, запустив sudo make distribute? Это полезно? Если да, то как мне его использовать? Официальная документация не очень ясна по этому поводу.


Было бы очень полезно простое, ясное и подробное объяснение того, как использовать уже созданную структуру Caffe с другими проектами, такими как Faster-RCNN.


person Denis Yakovenko    schedule 12.12.2016    source источник
comment
Я в той же лодке! Отличный вопрос и уровень описания. Интересно, что обычно делают люди, работая над другими проектами, когда Caffe уже построен. Я также предполагаю, что им не придется восстанавливать все с нуля.   -  person Arturo    schedule 12.02.2017


Ответы (1)


Я боролся с этим некоторое время, а затем заработал, как показано ниже.

Сначала проверьте переменную PYTHONPATH env. Он должен иметь путь python, например, например. на основе вашей версии Python и установки

PYTHONPATH = /usr/lib/python2.7

Если он пуст, вы можете установить его с помощью пути python, захваченного в вашей оболочке python. Чтобы проверить информацию о пути Python, откройте оболочку Python и введите ниже

>>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, вам просто нужно обновить переменную PYTHONPATH env, добавив в нее путь к папке /caffe-installation-path/python, нравится

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

Примечание. Вам не нужно пересобирать caffe, но правильно настройте caffe и python в переменной env PYTHONPATH.

person qwerty    schedule 01.05.2017