项目场景:
最近需要复现一篇目标检测论文的代码,文章提供了代码,因此自己根据仓库的说明尝试配置环境运行代码,但遇到了非常多的困难
问题描述
比较老的代码加上比较的GPU,导致了环境在配置的时候困难重重
OBBDetection框架是从MMDetection框架上修改而来的,其目的是为了实现旋转框的目标检测,而不是常见的水平框。OBB框架的安装过程和MMCV的配置过程一模一样,但问题也就出现在了这里。OBB这个项目是两年前发布的,其给出的安装教程针对cuda9.0、cuda10.x版本是适用的(这两种cuda支持的GPU算力最高也就是7.5,而A100 GPU的算力为8.0),而cuda11才能很好的支持A100,因此若按照OBB的安装文档去装环境,必然难以运行成功,因此需要我们自己摸索出到torch、cuda、mmcv这三个在A100上最适用的版本组合(排列组合了2天,给我恶心坏了,期间还遇到了各种奇奇怪怪的问题,走了弯路)
解决方案:
经过我的不断测试,找到了一组在A100上可以运行OBBDetection的组合
版本如下:
pytorch=1.7.1
cuda=11.0
mmcv-full=1.3.15
你可以使用下面的命令来配置OBBDetection的运行环境:
cd OBBDetection
conda create -n mmcv python=3.7 -y
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
conda activate mmcv
pip install -U openmim
mim install mmcv-full=1.3.15
pip install -v -e .
cd BboxToolkit
pip install -v -e .
可能遇到的其他问题
The detected CUDA version (10.1) mismatches the version that was used to compile Pytorch (11.1). Please make sure to use the same CUDA versions.
这个问题说的很明白,请确保CUDA compile driver version 和 所下载的pytorch对应的cuda 版本要对应。
CUDA compile driver version指的是 从这里下载的CUDA驱动
下载的pytorch对应的cuda指的是 从这里下载的支持cuda的pytorch
我之所以报这个错是因为我的Linux环境默认调用的CUDA compile driver是10.1版本的(使用
nvcc -V
命令查看系统调用的CUDA版本),与pytorch一起安装的cuda版本不一致,因此我又单独下载了一个CUDA11.1,至于如何在一个环境下配置多个CUDA可以参考这篇文章《非root用户在linux下安装多个版本的CUDA和cuDNN》