<p>未找到检测器操作库</p>

创建于 2018-02-07  ·  27评论  ·  资料来源: facebookresearch/Detectron

在 Ubuntu 16.04 上从源代码安装 caffe2 并尝试使用以下命令进行测试后: 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文件夹中。 我是否需要在安装 caffe2 之前以某种方式修改 CMakeLists 以确保它被正确包含?

系统信息

  • 操作系统:Ubuntu 16.04
  • 编译版本:gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5)
  • CUDA 版本:8.0
  • cuDNN 版本:6.0.21
  • 英伟达驱动版本:
  • GPU 型号(适用于所有设备,如果它们不完全相同):4x Tesla k80
  • PYTHONPATH环境变量:/usr/local:/home/ubuntu/caffe2/build
  • python --version输出:2.7.12

最有用的评论

我在安装过程中写下了所有命令,所以我认为这可能有助于您进行错误研究。 我看到你已经解决了。 但也许这可以帮助其他人作为指导。 祝大家好运!

系统信息

  • 亚马逊 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 :
搜索最新版本。 如果可能,请使用 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 :

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"

测试 GPU 安装。 返回值需要大于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 中有一个错字。 我解决了这个问题,现在它可以正常工作了。 感谢您提供这么好的资源!

我在安装过程中写下了所有命令,所以我认为这可能有助于您进行错误研究。 我看到你已经解决了。 但也许这可以帮助其他人作为指导。 祝大家好运!

系统信息

  • 亚马逊 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 :
搜索最新版本。 如果可能,请使用 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 :

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"

测试 GPU 安装。 返回值需要大于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

当我尝试在 AWS 的 AMI 平台上构建检测器时,我遇到了同样的问题。
我不确定我的 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 运算符库:断言错误:在运行 test_zero_even_op.py 时找到的“/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu.so”中未找到自定义操作库,但其他测试可以通过,Detectron 操作库:/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(在我的情况下没有 gpu)

@mehditlili您是否设置了 PYTHONPATH? 或者,我认为我们缺少一些扩展操作,并且有一个指南可以帮助我们帮助如何使用操作文件夹和构建扩展操作?

@马蒂弗兰德

由于通过 conda 分发 pytorch/caffe2 是官方的,因此应该没有额外的设置来定位这些 ops 模块。 虽然libcaffe2_detectron_ops_gpu.so可以通过标准的 PATH 环境定位,但默认情况下应该在没有用户干预的情况下搜索 pytorch 安装路径。 只需在运行时插入 pytorch sys.path.insert(0, torch.__path__[0]的安装路径即可确保找到检测器操作(最新版本)。

我的问题是 Detectron 显然想要 Caffe2/core 中的头文件,但是在 Anacdona 中 Pytorch 的官方构建不包括 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(prefix,'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] lib/路径中?
根据您的安装,它可能在其他地方,或者您可能在torch.__path__有多个条目。
打印并列出内容以找到它的位置。
或者,您可以将它添加到环境变量 PATH。

如果您通过安装 pytorch-nightly 来使用 caffe2,您可以将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谢谢!我已经解决了 一个非常简单的冲突〜

How did you solve the problem you encountered?

我有同样的问题,但在 colab 中,有什么想法吗?

@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中找到自定义操作库”。
Can you tell me how you solved this problem? I have encountered the same error

@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中找到自定义操作库”。
Can you tell me how you solved this problem? I have encountered the same error

I can´t solved, sorry.

当我尝试使用以下方法训练网络时,我也遇到了同样的错误:
python2工具/train_net.py \
--cfg 配置/DensePose_ResNet50_FPN_single_GPU.yaml \
OUTPUT_DIR /tmp/检测器输出
Detectron 和 caffe2 安装测试均成功通过。
错误输出:
找到Detectron ops lib:/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 中
'在 \'{}\''.format(custom_ops_lib) 中找不到自定义操作库
断言错误:在“/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时,它会抛出错误“未在'/path/to/to/detectron/build/libcaffe2_detectron_custom_ops_gpu中找到自定义操作库”。
你能告诉我你是如何解决这个问题的吗? 我遇到了同样的错误

而且我似乎找不到“libcaffe2_detectron_custom_ops_gpu.so”文件。 我确实验证了 caffe2/pytorch 在 PYTHONPATH 环境变量中。

找到了解决方案

在文件/路径到库/densepose/detectron/utils/env.py
编辑第 19 行
_CMAKE_INSTALL_PREFIX = '/usr/lib'

_CMAKE_INSTALL_PREFIX = '您使用 cmake 或 setup.py 文件构建的 pytorch 的 lib 文件夹的路径/'
并再次运行:)

我在 caffe2 中没有检测器模块。 我已经通过 pytorch 安装了 caffe2。 它安装正确,但没有检测器模块。 我能得到任何帮助吗?

提前致谢

嘿伙计们,这个代码块的目标是找到文件“libcaffe2_detectron_ops_gpu.so
",所以就这样做:

  1. 自己找文件: find / -name libcaffe2_detectron_ops_gpu.so
  2. 将搜索结果添加到搜索列表中

@genekogan谢谢! 我已经解决了。 很简单的冲突~

怎么解决,我也遇到同样的问题,谢谢

此页面是否有帮助?
0 / 5 - 0 等级