Detectron2是Facebook人工智能研究的下一代软件系统,它实现了最先进的目标探测算法。它是对之前Detectron版本的重写,源自maskrcn -benchmark。github地址:https://github.com/facebookresearch/detectron2
Github里的创库介绍了,我们的Colab笔记本有安装detectron2的详细步骤说明。Dockerfile还使用一些简单的命令安装detectron2。
有了以上依赖项,且gcc和g++≥5后,运行:
python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'
# (add --user if you don't have permission)
# Or, to install it from a local clone:
git clone https://github.com/facebookresearch/detectron2.git
cd detectron2 && python -m pip install -e .
# Or if you are on macOS
# CC=clang CXX=clang++ python -m pip install -e .
如果想要清除掉原有的detectorn2 可以使用 `rm -rf build/ **/*.so`` 。通常需要在重新安装PyTorch后重新生成detectron2。
# for CUDA 10.1:
python -m pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/index.html
你可以用“cu{100,92}”或“cpu”替换cu101。不过我建议使用cpu那样的速度太慢了。
Note:
如果您在使用预先构建的detectron2时遇到问题,请卸载它并尝试从源代码开始构建它。
每个问题的解决方案:
Undefined C++ symbols (e.g. GLIBCXX
) or C++ symbols not found.
通常是因为这个库是用一个较新的c++编译器编译的,但你是用一个旧的c++版本进行运行。这经常发生在老anaconda上。尝试conda更新conda update libgcc
。然后重建detectron2。基本的解决方案是使用足够新的c++运行时运行代码
“Not compiled with GPU support” or “Detectron2 CUDA Compiler: not available”.
当建造探测器2时没有发现CUDA。你应该确保
python -c 'import torch; from torch.utils.cpp_extension import CUDA_HOME; print(torch.cuda.is_available(), CUDA_HOME)'
在构建detectron2时,打印有效的输出。多数模型可以在没有GPU支持的情况下运行推断(但不支持训练)。若要使用cpu,请设置模型。配置中的设备=‘cpu’。
“invalid device function” or “no kernel image is available for execution”.
两个原因:
1.你用CUDA的一个版本构建detectron2,但用另一个版本运行它。
2.Detectron2或PyTorch/torchvision不是为正确的GPU架构(计算兼容性)而构建的。
Undefined CUDA symbols or cannot open libcudart.so.
用于构建detectron2或torchvision的NVCC版本与正在运行的CUDA版本不匹配。这经常发生在使用anaconda的CUDA运行时。使用python -m detectron2.utils.collect_env
去找出不一致的CUDA版本。在这个命令的输出中,你应该期望“Detectron2 CUDA Compiler”、“CUDA_HOME”、“PyTorch built with - CUDA”包含相同版本的CUDA库
“ImportError: cannot import name ‘_C’”.
请按照上面的说明建立和安装detectron2。
如果你正在运行代码从detectron2的根目录,cd到一个不同的目录再试试。否则,您可能无法导入安装的代码。
ONNX conversion segfault after some “TraceWarning”.
使用与PyTorch使用的版本更接近的编译器从其源代码构建和安装ONNX(可在“火炬。config_ .show()”中获得)。
如果按照官网的安装教程出现了一些问题可以参考这篇github文章 https://github.com/conansherry/detectron2