Detectron: CPU 和纯 Caffe2/C++ 推理支持,包括移动设备(“该模型可以像 Android 一样用于手机吗?”)

创建于 2018-01-24  ·  16评论  ·  资料来源: facebookresearch/Detectron

该模型可用于像Android一样的手机

planned feature

最有用的评论

我们计划在未来提供一个转换工具和如何在手机上运行 Detectron 模型的说明。

所有16条评论

我们计划在未来提供一个转换工具和如何在手机上运行 Detectron 模型的说明。

尝试构建仅用于 CPU 的推理,caffe2 已成功安装。 由于缺少 GPU 库,运行 test_spatial_narrow_as_op.py 失败。

$ python ../tests/test_spatial_narrow_as_op.py
警告:root :此 caffe2 python 运行没有 GPU 支持。 将在仅 CPU 模式下运行。
警告:root :调试消息:没有名为 caffe2_pybind11_state_gpu 的模块
回溯(最近一次调用最后一次):
文件“../tests/test_spatial_narrow_as_op.py”,第 88 行,在
utils.c2.import_detectron_ops()
文件“/home/user/Detectron/lib/utils/c2.py”,第 41 行,在 import_detectron_ops
detectron_ops_lib = envu.get_detectron_ops_lib()
文件“/home/user/Detectron/lib/utils/env.py”,第 73 行,在 get_detectron_ops_lib 中
'版本包括检测模块').format(detectron_ops_lib)
断言错误:在“/home/user/caffe2/build/lib/libcaffe2_detectron_ops_gpu.so”中找不到检测器操作库; 确保您的 Caffe2 版本包含 Detectron 模块

@rbgirshick ,我们可以在没有 GPU 的情况下进行推理吗? 得到与@ss32相同的错误

尝试构建仅用于 CPU 的推理,caffe2 已成功安装。 由于缺少 GPU 库,运行 test_spatial_narrow_as_op.py 失败。

$ python ../tests/test_spatial_narrow_as_op.py
警告:root :此 caffe2 python 运行没有 GPU 支持。 将在仅 CPU 模式下运行。
警告:root :调试消息:没有名为 caffe2_pybind11_state_gpu 的模块
回溯(最近一次调用最后一次):
文件“../tests/test_spatial_narrow_as_op.py”,第 88 行,在
utils.c2.import_detectron_ops()
文件“/home/user/Detectron/lib/utils/c2.py”,第 41 行,在 import_detectron_ops
detectron_ops_lib = envu.get_detectron_ops_lib()
文件“/home/user/Detectron/lib/utils/env.py”,第 73 行,在 get_detectron_ops_lib 中
'版本包括检测模块').format(detectron_ops_lib)
断言错误:在“/home/user/caffe2/build/lib/libcaffe2_detectron_ops_gpu.so”中找不到检测器操作库; 确保您的 Caffe2 版本包含 Detectron 模块

我在这里遇到了同样的问题。 在 Mac 上使用预构建的二进制文件。

面临同样的问题。 曾尝试从源代码以及使用 macOS 上的预构建二进制文件构建 caffe2。

我有同样的问题(请参阅错误日志)。

我的目标:在仅使用 CPU 的 MacO 上运行测试。

步骤:1)使用 cond 安装所有其他依赖项;
2)用conda安装caffe2。
3)用系统pip(python)安装detectron,然后把lib目录放到PYTHONPATH变量中。

然后我有上面同样的问题:

警告:root :此 caffe2 python 运行没有 GPU 支持。 将在仅 CPU 模式下运行。
警告:root :调试消息:没有名为 caffe2_pybind11_state_gpu 的模块
E0204 13:06:36.049393 2041434112 init_intrinsics_check.cc:54] CPU 功能 avx 存在于您的机器上,但 Caffe2 二进制文件没有用它编译。 这意味着您可能无法获得 CPU 的全速。
E0204 13:06:36.049954 2041434112 init_intrinsics_check.cc:54] CPU 功能 avx2 存在于您的机器上,但 Caffe2 二进制文件没有用它编译。 这意味着您可能无法获得 CPU 的全速。
E0204 13:06:36.049964 2041434112 init_intrinsics_check.cc:54] CPU 功能 fma 存在于您的机器上,但 Caffe2 二进制文件没有用它编译。 这意味着您可能无法获得 CPU 的全速。
回溯(最近一次调用最后一次):
文件“/tmp/test_spatial_narrow_as_op.py”,第 88 行,在
utils.c2.import_detectron_ops()
文件“/Users/wangy/python/detectron/lib/utils/c2.py”,第 41 行,在 import_detectron_ops
detectron_ops_lib = envu.get_detectron_ops_lib()
文件“/Users/wangy/python/detectron/lib/utils/env.py”,第 73 行,在 get_detectron_ops_lib
'版本包括检测模块').format(detectron_ops_lib)
断言错误:在“/Users/wangy/miniconda2/lib/python2.7/site-packages/lib/libcaffe2_detectron_ops_gpu.so”中找不到检测器操作库;

@CancerGenome这可能与仅限 GPU 的问题无关。 您必须安装带有检测器作为模块的 Caffe2 版本(如INSTALL.md说明中所述)。 可以在这里找到

@ss32我解决了这个问题。由于我的电脑已经安装了 caffe1 和 caffe2,所以我注释了 caffe1 的环境变量,它是 PYTHONPATH 变量。 并添加caffe2的环境变量。最后,我成功了。只需:
gedit ~/.bashrc
评论这个:

导出 PYTHONPATH=/pathto/caffe/python:$PYTHONPATH

添加这个:
导出 PYTHONPATH=/path/to/caffe2/build:$PYTHONPATH

希望能帮到你! 幸好~

@rbgirshick大约三周前,我花了一个星期天下午从源代码安装 caffe2,在 Ubuntu 16.04 上使用 4Gb CUDA 启用 GPU 的开发箱上,希望能够对一些更大的图像进行前馈,比如 CPU 上的 1920x1080 以查看掩蔽的质量。 但是我发现我被绑定到了仅限 GPU 的库:

lib/python2.7/site-packages/lib/libcaffe2_detectron_ops_gpu.so

因此,我目前只能选择使用 AWS 云计算来进行屏蔽或购买更新的支持 CUDA 的硬件。

您是否有关于何时完成仅 CPU 实现的时间表?

在我的树莓派上安装了 caffe2 和 Detectron。 有同样的问题。

警告:root :此 caffe2 python 运行没有 GPU 支持。 将在仅 CPU 模式下运行。
警告:root :调试消息:没有名为 caffe2_pybind11_state_gpu 的模块
INFO:caffe2.python.net_drawer :无法导入pydot,绘制网络需要它。 这通常可以使用“pip install pydot”安装在python中。 此外,pydot 需要 graphviz 将点文件转换为 pdf:在 ubuntu 中,通常可以使用“sudo apt-get install graphviz”进行安装。
net_drawer 将无法正常运行。 请安装正确的依赖项。
回溯(最近一次调用最后一次):
文件“test_spatial_narrow_as_op.py”,第 88 行,在
utils.c2.import_detectron_ops()
文件“/home/pi/detectron/lib/utils/c2.py”,第 41 行,在 import_detectron_ops
detectron_ops_lib = envu.get_detectron_ops_lib()
文件“/home/pi/detectron/lib/utils/env.py”,第 73 行,在 get_detectron_ops_lib 中
'版本包括检测模块').format(detectron_ops_lib)
断言错误:在“/home/pi/caffe2/build/lib/libcaffe2_detectron_ops_gpu.so”中找不到检测器操作库; 确保您的 Caffe2 版本包含 Detectron 模块

同样的问题,是否可以进行仅 CPU 的推理? 我想测试 Detectron 但不能这样做 - 我的主机操作系统是 Windows(据我所知,Detectron 不支持它)并且在虚拟机中我不能使用 GPU。
它说:

断言错误:未找到检测器操作库; 确保您的 Caffe2 版本包含 Detectron 模块

@all请参阅caffe2/modules/detectron/CMakeLists.txt的注释

# Note(ilijar): Since Detectron ops currently have no
# CPU implementation, we only build GPU ops for now.

caffe2 中的检测器模块仅在GPU 模式下可用!

刚刚再次浏览了 INSTALL.md,需求的注释部分清楚地表明“Detectron 目前没有 CPU 实现”

我认为#372 & #449 解决了CPU 部分的问题。
因此,如果您希望将其包含在内,我认为帮助维护者审查这两个 PR(并投票支持它们)可以简化流程。

如果您对CPU 支持感兴趣,您可以通过投票甚至审查以下两个问题来帮助我们提供支持:#372 和 #449。

Ps:这也有助于纯 Caffe2/PyTorch 推理,但在更遥远的未来

@rbgirshick @gadcam截至目前,是否无法在 Android 上运行 Detectron?

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

相关问题

elfpattern picture elfpattern  ·  3评论

baristahell picture baristahell  ·  3评论

coldgemini picture coldgemini  ·  3评论

rbgirshick picture rbgirshick  ·  3评论

junxiaoge picture junxiaoge  ·  3评论