facebookresearch / DensePose

A real-time approach for mapping all human pixels of 2D RGB images to a 3D surface-based model of the body
http://densepose.org
Other
6.97k stars 1.3k forks source link

AssertionError: detectron ops lib not found #133

Open ChrisNoot opened 6 years ago

ChrisNoot commented 6 years ago

Hi all,

I run the following configuration:

Operating system: Ubuntu 16.04
Compiler version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)
CUDA version: 9.0
cuDNN version: 7.3.0
NVIDIA driver version:
GPU models (for all devices if they are not all the same): 2x Tesla V100
python --version output: 2.7.12

I followed the installation in this link https://github.com/facebookresearch/DensePose/blob/master/INSTALL.md after I received a success message of this command:

# To check if Caffe2 build was successful
python2 -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

and when i issue the following command, the result is 2, which is correct.

# To check if Caffe2 GPU build was successful
# This must print a number > 0 in order to use Detectron
python2 -c 'from caffe2.python import workspace; print(workspace.NumCudaDevices())'

When I try this command:

python2 $DENSEPOSE/detectron/tests/test_spatial_narrow_as_op.py

I get the following error:

Error:
Traceback (most recent call last):

File "detectron/tests/test_spatial_narrow_as_op.py", line 80, in <module>
   c2_utils.import_detectron_ops()
File "/home/cp/DensePose/detectron/utils/c2.py", line 33, in import_detectron_ops
   detectron_ops_lib = envu.get_detectron_ops_lib()
File "/home/cp/DensePose/detectron/utils/env.py", line 63, in get_detectron_ops_lib
   ('Detectron ops lib not found; make sure that your Caffe2 '
AssertionError: Detectron ops lib not found; make sure that your Caffe2 version includes Detectron module

Hope you can help!

jaggernaut007 commented 6 years ago

Run the detectron setup. I should work.

On Thu, 18 Oct 2018, 8:36 pm Vuurtoren2000, notifications@github.com wrote:

Hi all,

I run the following configuration:

Operating system: Ubuntu 16.04 Compiler version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) CUDA version: 9.0 cuDNN version: 7.3.0 NVIDIA driver version: GPU models (for all devices if they are not all the same): 2x Tesla V100 python --version output: 2.7.12

I get the following error when I try this command.

Command: python2 $DENSEPOSE/detectron/tests/test_spatial_narrow_as_op.py

Error: Traceback (most recent call last): File "detectron/tests/test_spatial_narrow_as_op.py", line 80, in c2_utils.import_detectron_ops() File "/home/cp/DensePose/detectron/utils/c2.py", line 33, in import_detectron_ops detectron_ops_lib = envu.get_detectron_ops_lib() File "/home/cp/DensePose/detectron/utils/env.py", line 63, in get_detectron_ops_lib ('Detectron ops lib not found; make sure that your Caffe2 ' AssertionError: Detectron ops lib not found; make sure that your Caffe2 version includes Detectron module

Hope you can help!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/facebookresearch/DensePose/issues/133, or mute the thread https://github.com/notifications/unsubscribe-auth/Al5HtKQxa90GlkXha4IrXhaqzU9X4B9Yks5umJjjgaJpZM4Xtpgw .

ChrisNoot commented 6 years ago

Hello jaggernaut. I ofcourse ran the setup and it was completed without errors.

roboticlemon commented 6 years ago

Did you compile from source or use an anaconda package for caffe2? I know older versions of the anaconda package were not compiled with detectron modules and Im not sure if they have updated it since. I'm going to hazard a guess that you did use anaconda in which case you 100% should be compiling from source, or use the docker image. If you compiled from source make sure you are on a recent version of the caffe2/pytorch library and you didnt checkout a much older commit or modify your cmakelist

ChrisNoot commented 6 years ago

Thanks ingramator for your help.

Did you compile from source or use an anaconda package for caffe2?

Yes, I compiled from source.

I know older versions of the anaconda package were not compiled with detectron modules and Im not sure if they have updated it since. I'm going to hazard a guess that you did use anaconda in which case you 100% should be compiling from source, or use the docker image.

I don't use anaconda but pip. Pip version is 18.1 with python 2.7.

If you compiled from source make sure you are on a recent version of the caffe2/pytorch library

I got caffe2 running and caffe2 detects the correct number of GPUs in my system. I followed the installation steps in this link: https://github.com/facebookresearch/DensePose/blob/master/INSTALL.md. and for the caffe2 installation I used this link: https://caffe2.ai/docs/getting-started.html?platform=ubuntu&configuration=compile#install-with-gpu-support I assumed it automatically clones the newest version?

and you didnt checkout a much older commit or modify your cmakelist

I didn't do this. How should my cmakelist need to look like?

I've added the steps in my first post to clarify my process!

roboticlemon commented 6 years ago

This is the best guide for compiling caffe2 from source: https://tech.amikelive.com/node-706/comprehensive-guide-installing-caffe2-with-gpu-support-by-building-from-source-on-ubuntu-16-04/

twkillian commented 5 years ago

@Vuurtoren2000 I'm having this same issue and followed the same procedure as you had in your original post.

Were you able to solve your issue? If so, how?

twkillian commented 5 years ago

@michael230779 and others... I solved this issue by compiling the detectron repo following the installation instructions for the Detectron library found here:

After getting that compiled, the test script: python2 $DENSEPOSE/detectron/tests/test_spatial_narrow_as_op.py

ran as expected.

michael230779 commented 5 years ago

Thanks @twkillian. I removed the detectron repository that I cloned as part of the densepose repository and replaced it with the original detectron repository from the respective github repo. Works just fine now. Still wondering what's missing in the densepose/detectron repository, though...

robpieke commented 5 years ago

Going off your comment of "using the detectron repo, everything works", I think the meaningful difference is this: https://github.com/facebookresearch/Detectron/blob/master/detectron/utils/env.py#L67 Whereby detectron searches torch/lib/ (and lib/) and densepose only searches lib/. I locally patched my utils/env.py to search torch/lib/ and the test passes for me now.

life-efficient commented 5 years ago

If you're following this guide (https://github.com/Johnqczhang/densepose_installation) use his forked repo