Detectron2安装之我又认识了CUDA
零、主要内容
在Linux环境中,安装Detectron2
1. 基础环境(Python、Pytorch、OpenCV)
2. Install Pre-Built Detectron2 (Linux only)
一服务器可配置多版本CUDA
一、Detectron2
前言
安装一个开源平台,我们心里要有一个目标,那就是当我配置模型config
,输入图片input
,输入参数checkpoints
,并运行demo.py
,它不报错。在这个基础上,就可以继续自己对于模型的探索。
简单介绍一下,Detectron2,Facebook AI Research(FAIR)开源的基于Pytorch的目标检测算法实现,哦,那公司现在叫Meta,改名了。
配置基本环境
Detectron2选择v0.6版本
- Linux with Python ≥ 3.6
- PyTorch ≥ 1.8 and torchvision that matches the PyTorch installation.
- OpenCV is needed by demo and visualization
无奈,使用着无法链接外网的服务器,手动下载pytorch也是一个不错的选择。conda链接
下载文件路径下,运行:
conda install --offline pytorch-1.8.1-py3.7_cuda10.1_cudnn7.6.3_0.tar.bz2
conda install --offline torchvision-0.9.1-py37_cu101.tar.bz2
pip install opencv-python
检测cuda是否正确安装,这一步使用pip方法直接忽略。
python -c 'import torch; from torch.utils.cpp_extension import CUDA_HOME; print(torch.cuda.is_available(), CUDA_HOME)'
运行完,输出True /usr
Detectron2 自动安装,仅Linux系统
官方给了,手动下载安装 与 *直接pip(仅Linux)*两种安装方法。
如果是在Linux系统上安装,强烈推荐使用使用pip,以避免不必要的服务器底层编译问题。
- 手动下载安装,我的理解是使用本地的C++编译器进行编译,如果报错不好解决。
- 直接pip,需要注意各个库和安装包版本匹配的问题。
注意:对应好版本 这里安装的是detectron2-v0.6,本地环境使用 - cudatoolkit=10.1,
- torch=1.8.1,
- torchvision=0.9.1,
- python=3.7
运行命令:
python -m pip install detectron2 -f \
https://dl.fbaipublicfiles.com/detectron2/wheels/cu101/torch1.8/index.html
手动安装时候,服务器底层编译器报错,这个超出目前认知范围,直接更换安装方法。
- command ‘/usr/bin/nvcc’ failed with exit status 1
ERROR: No supported gcc/g++ host compiler found.
Use 'nvcc -ccbin <compiler>' to specify a host compiler.
error: command '/usr/bin/nvcc' failed with exit status 1
上述报错,不知nvcc -ccbin
命令含义,大佬请指教!
测试
输入以下命令,执行模型推理的程序,输入一张图片、模型配置、模型参数,输出demo。
python demo/demo.py --config-file configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml \
--input demo/people.jpg --output ./ \
--opts MODEL.WEIGHTS detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl
- –config-file 配置文件
- –input 输入图片
- –output demo输出路径
- –opts MODEL.WEIGHTS 模型参数文件
OK,这个类似于detectron2的Hello world!
二、CUDA
- CUDA是显卡厂商NVIDIA推出的运算平台。
- CUDA驱动 NVIDIA的显卡驱动程序
- cudatoolkit:CUDA工具包的主要包含了CUDA-C和CUDA-C++编译器、一些科学库和实用程序库、CUDA和library API的代码示例、和一些CUDA开发工具。
- NVCC就是CUDA的编译器,可以从CUDA Toolkit的/bin目录中获取,类似于gcc就是c语言的编译器。
- cuDNN的全称为NVIDIA CUDA® Deep Neural Network library,是NVIDIA专门针对深度神经网络中的基础操作而设计基于GPU的加速库
以上是CUDA、显卡驱动、cudatoolkit、nvcc、cuDNN含义。
以下废话,
一个服务器上可能有多个版本的cuda
当运行nvidia-smi
、nvcc -v
显示的cuda版本可能不同
CUDA Toolkit和 显卡驱动 的版本对应
CUDA / CUDA Toolkit和cuDNN的版本对应
其他环境配置中与库的对应,就看说明文档啦。
总之,用时半天,为啥呢,相比较而言,本地编译环境的报错还是无法解决,易走弯路,本文仅当记录,各位客官,有不足请指出,有好的建议也望留言。