<p>Detectron ops lib не найден</p>

Созданный на 7 февр. 2018  ·  27Комментарии  ·  Источник: facebookresearch/Detectron

После установки caffe2 из исходного кода на Ubuntu 16.04 и попытки тестирования с помощью: python2 detectron/tests/test_spatial_narrow_as_op.py я получаю следующее:

No handlers could be found for logger "caffe2.python.net_drawer"
net_drawer will not run correctly. Please install the correct dependencies.
E0207 16:36:41.320443  4125 init_intrinsics_check.cc:59] CPU feature avx is present on your machine, but the Caffe2 binary is not compiled with it. It means you may not get the full speed of your CPU.
Traceback (most recent call last):
  File "detectron/tests/test_spatial_narrow_as_op.py", line 88, in <module>
    utils.c2.import_detectron_ops()
  File "/home/gene/detectron/lib/utils/c2.py", line 41, in import_detectron_ops
    detectron_ops_lib = envu.get_detectron_ops_lib()
  File "/home/gene/detectron/lib/utils/env.py", line 73, in get_detectron_ops_lib
    'version includes Detectron module').format(detectron_ops_lib)
AssertionError: Detectron ops lib not found at '/usr/local/lib/python2.7/dist-packages/lib/libcaffe2_detectron_ops_gpu.so'; make sure that your Caffe2 version includes Detectron module

Но модуль детектора присутствует в папке modules . Нужно ли мне каким-то образом изменять CMakeLists перед установкой caffe2, чтобы убедиться, что он правильно включен?

Системная информация

  • Операционная система: Ubuntu 16.04
  • Версия компилятора: gcc версии 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1 ~ 16.04.5)
  • Версия CUDA: 8.0
  • Версия cuDNN: 6.0.21
  • Версия драйвера NVIDIA:
  • Модели GPU (для всех устройств, если они не все одинаковые): 4x Tesla k80
  • PYTHONPATH переменная окружения: / usr / local: / home / ubuntu / caffe2 / build
  • python --version вывод: 2.7.12

Самый полезный комментарий

Я записал все команды во время установки, поэтому подумал, что это может помочь вам в поиске ошибок. Я видел, что вы ее решили. Но, возможно, это поможет другим в качестве ориентира. Удачи всем!

Системная информация

  • Инстанс Amazon AWS g3.4xlarge (NVIDIA Tesla M60)
  • Ubuntu 16.04

Установка

Я использовал документацию Caffe2 и документацию Detectron в качестве руководства.

Обновите драйвер NVIDIA

Скачать драйвер

sudo dpkg -i nvidia-diag-driver-local-repo-ubuntu1604_375.66-1_amd64.deb
sudo apt-get update && sudo apt-get install wget -y --no-install-recommends

Установка зависимостей

sudo apt-get update
sudo apt-get install -y --no-install-recommends build-essential cmake git libgoogle-glog-dev libgtest-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev openmpi-bin openmpi-doc protobuf-compiler python-dev python-pip
sudo pip install setuptools future numpy protobuf enum networkx
sudo apt-get install -y --no-install-recommends libgflags-dev

Установить CUDA

Ссылка: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/
Найдите самую новую версию. По возможности используйте cuda 8. Я использовал: cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/..." //add selected file name
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda-8-0

Установить cuDNN

Найдите самую новую версию: https://developer.nvidia.com/cudnn

wget http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig

Установить Caffe2

Из-за быстрого развития Caffe2 вам может потребоваться сбросить репозиторий до последней версии, проходящей через сборку. Вы можете проверить это в репозитории Caffe2 GitHub . Щелкните значок успешной / неудачной сборки в верхней части README.md. Слева вы можете проверить последнюю сборку и выбрать последнюю проходящую сборку. Нажмите на сборку и скопируйте номер фиксации.

Go to your selected installation directory: cd directory
git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
git reset --hard $COMMIT_NUMBER //unnecessary when builds passing
sudo make -j16 //exchange 16 by your number of cores
cd build && sudo make install

Установить переменные среды

добавьте эти строки в .bashrc:

export PYTHONPATH=/usr/local
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/caffe2/build
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

Тест Caffe2 и GPU

Проверьте свою установку Caffe2:

python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

Проверьте установку графического процессора. Возвращаемое значение должно быть больше 0:

python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

Установите зависимости Detectron

sudo pip install numpy>=1.13 pyyaml>=3.12 matplotlib opencv-python>=3.2 setuptools Cython mock scipy
sudo git clone https://github.com/cocodataset/cocoapi.git $WANTED-DIRECTORY/cocoapi
cd $WANTED-DIRECTORY/cocoapi/PythonApi
sudo -H make install
sudo python setup.py install

добавить строку в .bashrc:

export COCOAPI=$WANTED-DIRECTORY/cocoapi

Не забудьте загрузить данные с сайта coco в этом каталоге. Структура как описано в данных README.md

Установить Детектрон

git clone https://github.com/facebookresearch/detectron detectron
cd detectron/lib && sudo make -j16

проверить установку

python2 detectron/tests/test_spatial_narrow_as_op.py

Надеюсь, я смогу помочь некоторым людям :)

Все 27 Комментарий

Я решил проблему. Не было никаких проблем, у меня просто и глупо была опечатка в моем PYTHONPATH. Я исправил это, и теперь он работает правильно. Спасибо за этот замечательный ресурс!

Я записал все команды во время установки, поэтому подумал, что это может помочь вам в поиске ошибок. Я видел, что вы ее решили. Но, возможно, это поможет другим в качестве ориентира. Удачи всем!

Системная информация

  • Инстанс Amazon AWS g3.4xlarge (NVIDIA Tesla M60)
  • Ubuntu 16.04

Установка

Я использовал документацию Caffe2 и документацию Detectron в качестве руководства.

Обновите драйвер NVIDIA

Скачать драйвер

sudo dpkg -i nvidia-diag-driver-local-repo-ubuntu1604_375.66-1_amd64.deb
sudo apt-get update && sudo apt-get install wget -y --no-install-recommends

Установка зависимостей

sudo apt-get update
sudo apt-get install -y --no-install-recommends build-essential cmake git libgoogle-glog-dev libgtest-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev openmpi-bin openmpi-doc protobuf-compiler python-dev python-pip
sudo pip install setuptools future numpy protobuf enum networkx
sudo apt-get install -y --no-install-recommends libgflags-dev

Установить CUDA

Ссылка: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/
Найдите самую новую версию. По возможности используйте cuda 8. Я использовал: cuda-repo-ubuntu1604_8.0.61-1_amd64.deb

wget "http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/..." //add selected file name
sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda-8-0

Установить cuDNN

Найдите самую новую версию: https://developer.nvidia.com/cudnn

wget http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz
sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig

Установить Caffe2

Из-за быстрого развития Caffe2 вам может потребоваться сбросить репозиторий до последней версии, проходящей через сборку. Вы можете проверить это в репозитории Caffe2 GitHub . Щелкните значок успешной / неудачной сборки в верхней части README.md. Слева вы можете проверить последнюю сборку и выбрать последнюю проходящую сборку. Нажмите на сборку и скопируйте номер фиксации.

Go to your selected installation directory: cd directory
git clone --recursive https://github.com/caffe2/caffe2.git && cd caffe2
git reset --hard $COMMIT_NUMBER //unnecessary when builds passing
sudo make -j16 //exchange 16 by your number of cores
cd build && sudo make install

Установить переменные среды

добавьте эти строки в .bashrc:

export PYTHONPATH=/usr/local
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/caffe2/build
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

Тест Caffe2 и GPU

Проверьте свою установку Caffe2:

python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

Проверьте установку графического процессора. Возвращаемое значение должно быть больше 0:

python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

Установите зависимости Detectron

sudo pip install numpy>=1.13 pyyaml>=3.12 matplotlib opencv-python>=3.2 setuptools Cython mock scipy
sudo git clone https://github.com/cocodataset/cocoapi.git $WANTED-DIRECTORY/cocoapi
cd $WANTED-DIRECTORY/cocoapi/PythonApi
sudo -H make install
sudo python setup.py install

добавить строку в .bashrc:

export COCOAPI=$WANTED-DIRECTORY/cocoapi

Не забудьте загрузить данные с сайта coco в этом каталоге. Структура как описано в данных README.md

Установить Детектрон

git clone https://github.com/facebookresearch/detectron detectron
cd detectron/lib && sudo make -j16

проверить установку

python2 detectron/tests/test_spatial_narrow_as_op.py

Надеюсь, я смогу помочь некоторым людям :)

@genekogan

У меня такая же проблема, когда я пытаюсь построить детектор на платформе AMI AWS.
Я не уверен, правильный ли мой PYTHONPATH
вот мой PYTHONPATH: / home / ec2-user / src / caffe2 / build

Мне интересно, что должен включать в себя каталог "build"?
Вот файлы, которые находятся в моем каталоге "build":
screen shot 2018-03-14 at 12 29 28 pm

Они такие же, как у вас?

Спасибо!

установите PYTHONPATH или pth файл, чтобы включить $ {CAFFE2_ROOT} / build

Пользовательская библиотека оператора Caffe2 CPU или GPU не найдена: AssertionError: Пользовательская библиотека операций не найдена в '/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu.so'Обнаружена при запуске test_zero_even_op.py, но другие тесты могут пройти, Detectron ops lib : /usr/local/lib/libcaffe2_detectron_ops_gpu.so найдено. Не могли бы вы дать мне какое-нибудь представление?

@genekogan, ты можешь мне помочь? Все общие тесты проходят с информацией «/usr/local/lib/libcaffe2_detectron_ops_gpu.so found». Однако, когда я тестирую настраиваемую операцию и запускаю test_zero_even_op.py, он выдает ошибку «Пользовательская библиотека операций не найдена в '/ path / to / to / detectron / build / libcaffe2_detectron_custom_ops_gpu».

@ ym547559398 Я не уверен в конкретной ошибке, которую вы получаете. Я решил свою проблему с помощью того, что сказал @ huhai463127310 : убедитесь, что вы установили PYTHONPATH для включения $ {CAFFE2_ROOT} / build

@genekogan Спасибо! Я решил это. Очень простой конфликт ~

У меня все еще возникает та же проблема, когда caffe2 интегрирован в pytorch, я скомпилировал pytorch из последнего источника, но запущенный Detetron simple_infer все еще жалуется на то, что не нашел detectron_ops (в моем случае нет графического процессора)

@mehditlili Вы установили PYTHONPATH? Или же, я думаю, нам не хватает некоторых расширенных операций, и есть руководство, которое поможет нам, как использовать папку операций и создавать расширенные операции?

@mattifrind

Поскольку распространение pytorch / caffe2 через conda является официальным, не должно быть никаких дополнительных настроек для поиска этих модулей ops. Хотя libcaffe2_detectron_ops_gpu.so можно найти через стандартный PATH env, путь установки pytorch следует искать по умолчанию без вмешательства пользователя. Простая вставка пути установки pytorch sys.path.insert(0, torch.__path__[0] во время выполнения обеспечит обнаружение операций детектора (последняя версия).

Моя проблема в том, что Detectron явно хочет файлы заголовков в Caffe2 / core, но официальная сборка Pytorch в Anacdona не включает Caffe2 / core. Нужно ли мне выполнить дополнительную установку pytorch и добавить этот путь в Caffe2_Dir?

Я решил эту проблему, добавив torch.pth в каталог ~ / .conda / envs / dl / lib / python2.7 / site-packages, поскольку libcaffe2_detectron_ops_gpu.so находится в каталоге site-packages / torch.

torch.pth содержит только один путь:
/home/ruixin/.conda/envs/dl/lib/python2.7/site-packages/torch

PS: эта ошибка запустит следующую функцию. Вы можете видеть, что «ops_path = os.path.join (префикс, 'lib / libcaffe2_detectron_ops_gpu.so')» предназначен для получения файла .so.

def get_detectron_ops_lib():
    """Retrieve Detectron ops library."""
    # Candidate prefixes for the detectron ops lib path
    # print("=> path list = :\n", _CMAKE_INSTALL_PREFIX, "\n", sys.prefix, '\n', sys.exec_prefix, '\n', sys.path)
    prefixes = [_CMAKE_INSTALL_PREFIX, sys.prefix, sys.exec_prefix] + sys.path
    # Search for detectron ops lib
    # print("=> prefixes = {}".format(prefixes))
    for prefix in prefixes:
        ops_path = os.path.join(prefix, 'lib/libcaffe2_detectron_ops_gpu.so')
        # print("=> ops_path = {}".format(ops_path))
        if os.path.exists(ops_path):
            # TODO(ilijar): Switch to using a logger
            print('Found Detectron ops lib: {}'.format(ops_path))
            break
    assert os.path.exists(ops_path), \
        ('Detectron ops lib not found; make sure that your Caffe2 '
         'version includes Detectron module')
    return ops_path

@farleylai

Я попробовал ваше предложение, но оно не сработало, и я получаю ту же ошибку.
Кто-нибудь может предложить другой обходной путь?

@zabatani

Вы уверены, что libcaffe2_detectron_ops_gpu.so находится на пути lib/ под torch.__path__[0] ?
В зависимости от вашей установки он может быть где-то еще или у вас может быть несколько записей в torch.__path__ .
Распечатайте и перечислите содержимое, чтобы найти его.
В качестве альтернативы вы можете добавить его в переменную окружения PATH.

Если вы используете caffe2, установив pytorch-nightly, вы можете скопировать или связать libcaffe2_detectron_ops_gpu.so (где-то вроде /home/ruixin/.conda/envs/dl/lib/python2.7/site-packages/torch ) с /usr/lib или lib виртуальной среды
Меня устраивает.

После добавления переменной окружения PYTHONPATH: / path / to / pytorch / build тест пройден.

@suica Это сработало для меня. Я не смог поместить ссылку в /ur/lib и использую conda вместо virtualenv. Я положил его в /path/to/conda/env/lib и он работает. Спасибо!

@genekogan Спасибо! Я разрешил очень простой конфликт ~

Как вы решили возникшую проблему?

У меня такая же проблема, но в колабе, есть идеи?

@genekogan, ты можешь мне помочь? Все общие тесты передают информацию "/usr/local/lib/libcaffe2_detectron_ops_gpu.so found". Однако, когда я тестирую настраиваемую операцию и запускаю test_zero_even_op.py, он выдает ошибку «Библиотека настраиваемых операций не найдена в '/ path / to / to / detectron / build / libcaffe2_detectron_custom_ops_gpu».
Можете ли вы рассказать мне, как вы решили эту проблему? Я столкнулся с той же ошибкой

@genekogan, ты можешь мне помочь? Все общие тесты передают информацию "/usr/local/lib/libcaffe2_detectron_ops_gpu.so found". Однако, когда я тестирую настраиваемую операцию и запускаю test_zero_even_op.py, он выдает ошибку «Библиотека настраиваемых операций не найдена в '/ path / to / to / detectron / build / libcaffe2_detectron_custom_ops_gpu».
Можете ли вы рассказать мне, как вы решили эту проблему? Я столкнулся с той же ошибкой

Я не могу решить, извините.

У меня тоже такая же ошибка, когда я пытаюсь обучить сеть, используя:
инструменты python2 / train_net.py \
--cfg configs / DensePose_ResNet50_FPN_single_GPU.yaml \
OUTPUT_DIR / tmp / detectron-output
Установочные тесты Detectron и caffe2 проходят успешно.
Вывод ошибки:
Найдена операционная библиотека Detectron: /usr/local/lib/python2.7/site-packages/torch/lib/libcaffe2_detectron_ops_gpu.so
Отслеживание (последний вызов последний):
Файл "/usr/local/densepose/tools/train_net.py", строка 35, в
c2_utils.import_custom_ops ()
Файл "/usr/local/densepose/detectron/utils/c2.py", строка 39, в import_custom_ops
custom_ops_lib = envu.get_custom_ops_lib ()
Файл "/usr/local/densepose/detectron/utils/env.py", строка 85, в get_custom_ops_lib
'Пользовательская библиотека операций не найдена в формате \' {} \ ''. (Custom_ops_lib)
AssertionError: пользовательская библиотека операций не найдена в '/usr/local/densepose/build/libcaffe2_detectron_custom_ops_gpu.so'

@genekogan Спасибо! Я решил это. Очень простой конфликт ~

@genekogan 你 能 帮帮 我 吗? 一般 测试 通过 信息 «/usr/local/lib/libcaffe2_detectron_ops_gpu.so found»。 但是 , 当 我 测试 自 定义 操作 test_zero_even_op.py ,在 '/ путь / к / к / detectron / build / libcaffe2_detectron_custom_ops_gpu 中 找到 自 定义 操作 库 ”。
Подскажите, как вы решили эту проблему? Я столкнулся с такой же ошибкой

И я не могу найти файл libcaffe2_detectron_custom_ops_gpu.so. Я проверил, что caffe2 / pytorch находятся в переменной среды PYTHONPATH.

нашел решение

в файле / путь к библиотеке / elasticpose / detectron / utils / env.py
редактировать строку 19
_CMAKE_INSTALL_PREFIX = '/ usr / lib'
к
_CMAKE_INSTALL_PREFIX = 'путь к папке lib pytorch, которую вы создали с помощью cmake или файла setup.py /'
и снова беги :)

У меня нет модуля детектора в caffe2. Я установил caffe2 через pytorch. Он устанавливается правильно, но в нем нет модуля детектора. могу ли я получить помощь.

заранее спасибо

Привет, ребята, цель этого блока кода - найти файл libcaffe2_detectron_ops_gpu.so
", так что просто сделайте следующее:

  1. найдите файл самостоятельно: найдите / -name libcaffe2_detectron_ops_gpu.so
  2. добавить результат поиска в список поиска

@genekogan Спасибо! Я решил это. Очень простой конфликт ~

как решить, у меня такая же проблема, спасибо

Была ли эта страница полезной?
0 / 5 - 0 рейтинги