После установки 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, чтобы убедиться, что он правильно включен?
PYTHONPATH
переменная окружения: / usr / local: / home / ubuntu / caffe2 / buildpython --version
вывод: 2.7.12Я решил проблему. Не было никаких проблем, у меня просто и глупо была опечатка в моем PYTHONPATH. Я исправил это, и теперь он работает правильно. Спасибо за этот замечательный ресурс!
Я записал все команды во время установки, поэтому подумал, что это может помочь вам в поиске ошибок. Я видел, что вы ее решили. Но, возможно, это поможет другим в качестве ориентира. Удачи всем!
Я использовал документацию Caffe2 и документацию Detectron в качестве руководства.
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
Ссылка: 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
Найдите самую новую версию: 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 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:
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())'
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":
Они такие же, как у вас?
Спасибо!
установите 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
", так что просто сделайте следующее:
@genekogan Спасибо! Я решил это. Очень простой конфликт ~
как решить, у меня такая же проблема, спасибо
Самый полезный комментарий
Я записал все команды во время установки, поэтому подумал, что это может помочь вам в поиске ошибок. Я видел, что вы ее решили. Но, возможно, это поможет другим в качестве ориентира. Удачи всем!
Системная информация
Установка
Я использовал документацию Caffe2 и документацию Detectron в качестве руководства.
Обновите драйвер NVIDIA
Скачать драйвер
Установка зависимостей
Установить CUDA
Ссылка: http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/
Найдите самую новую версию. По возможности используйте cuda 8. Я использовал: cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
Установить cuDNN
Найдите самую новую версию: https://developer.nvidia.com/cudnn
Установить Caffe2
Из-за быстрого развития Caffe2 вам может потребоваться сбросить репозиторий до последней версии, проходящей через сборку. Вы можете проверить это в репозитории Caffe2 GitHub . Щелкните значок успешной / неудачной сборки в верхней части README.md. Слева вы можете проверить последнюю сборку и выбрать последнюю проходящую сборку. Нажмите на сборку и скопируйте номер фиксации.
Установить переменные среды
добавьте эти строки в .bashrc:
Тест Caffe2 и GPU
Проверьте свою установку Caffe2:
Проверьте установку графического процессора. Возвращаемое значение должно быть больше 0:
Установите зависимости Detectron
добавить строку в .bashrc:
Не забудьте загрузить данные с сайта coco в этом каталоге. Структура как описано в данных README.md
Установить Детектрон
проверить установку
Надеюсь, я смогу помочь некоторым людям :)