··

mmRotate配置安装终极攻略

Warning

本文只提供了linux下的配置,Windows我没配置过。mmrotate版本为 0.3.4 我个人比较推荐这个版本 版本 1.0.0rcX 虽然新但是文档不全。

mmRotate是一个十分优秀的项目,但 0.3.4 对于新版本的torch支持却不尽如人意,而他自带的mim环境管理又缺乏维护,这导致使用自带的mim安装会出现版本不适配造成的bug。我花了一天时间整理环境,找到了他所能支持的最新环境配置方案。配置此环境的难点不在于安装mmrotate本身,而在CUDA版本与torch版本选择上,故本文着重讲解此内容。

为了让后来人少受折磨,故写此“宝宝攻略”分享给大家,里面包含从CUDA、cuDNN安装、torch安装等的详细做法,请各位选择性阅读。同时这里有一份完整可用的requirements.txt,可以使用pip安装环境。

如按本教程配置仍未能完成配置,欢迎发邮件联系我。

TL;DR

ubuntu22.04+CUDA11.7+RTX3090+torch1.13.0+cu117

requirements.txt
addict==2.4.0
78 collapsed lines
aliyun-python-sdk-core==2.16.0
aliyun-python-sdk-kms==2.16.5
brotlipy==0.7.0
certifi @ file:///croot/certifi_1671487769961/work/certifi
cffi @ file:///croot/cffi_1670423208954/work
charset-normalizer @ file:///tmp/build/80754af9/charset-normalizer_1630003229654/work
click==8.1.8
colorama==0.4.6
crcmod==1.7
cryptography @ file:///croot/cryptography_1677533068310/work
cycler==0.11.0
Cython==3.0.12
docker-pycreds==0.4.0
e2cnn==0.2.3
flit_core @ file:///opt/conda/conda-bld/flit-core_1644941570762/work/source/flit_core
fonttools==4.38.0
gitdb==4.0.12
GitPython==3.1.45
idna @ file:///croot/idna_1666125576474/work
importlib-metadata==6.7.0
jmespath==0.10.0
kiwisolver==1.4.5
Markdown==3.4.4
markdown-it-py==2.2.0
matplotlib==3.5.3
mdurl==0.1.2
mkl-fft==1.3.1
mkl-random @ file:///tmp/build/80754af9/mkl_random_1626179032232/work
mkl-service==2.4.0
mmcv-full==1.7.0
-e git+https://github.com/open-mmlab/mmdetection.git@e9cae2d0787cd5c2fc6165a6061f92fa09e48fb1#egg=mmdet&subdirectory=../../../submodules/mmdetection
mmengine==0.10.7
-e git+https://github.com/open-mmlab/mmrotate.git@c88e6150f560a978877f21f6b43e14e2816bd7e5#egg=mmrotate
model-index==0.1.11
mpmath==1.3.0
numpy @ file:///opt/conda/conda-bld/numpy_and_numpy_base_1653915516269/work
opencv-python==4.12.0.88
opendatalab==0.0.10
openmim==0.3.9
openxlab==0.0.10
ordered-set==4.1.0
oss2==2.17.0
packaging==24.0
pandas==1.3.5
Pillow==9.4.0
platformdirs==4.0.0
protobuf==4.24.4
psutil==7.0.0
pycocotools==2.0.7
pycparser @ file:///tmp/build/80754af9/pycparser_1636541352034/work
pycryptodome==3.23.0
Pygments==2.17.2
pyOpenSSL @ file:///croot/pyopenssl_1677607685877/work
pyparsing==3.1.4
PySocks @ file:///tmp/build/80754af9/pysocks_1594394576006/work
python-dateutil==2.9.0.post0
pytz==2023.4
PyYAML==6.0.1
requests==2.28.2
rich==13.8.1
scipy==1.7.3
sentry-sdk==2.33.2
setproctitle==1.3.3
shapely==2.0.7
six @ file:///tmp/build/80754af9/six_1644875935023/work
smmap==5.0.2
sympy==1.10.1
tabulate==0.9.0
termcolor==2.3.0
terminaltables==3.1.10
tomli==2.0.1
torch==1.13.0
torchaudio==0.13.0
torchvision==0.14.0
tqdm==4.65.2
typing_extensions==4.7.1
urllib3 @ file:///croot/urllib3_1673575502006/work
wandb==0.18.7
yapf==0.30.0
zipp==3.15.0

环境概览

为了方便后续与transformers集成以及后续开发工作,我倾向于尽可能的使用高版本的torch与CUDA,下面是我的整体环境:

  • 非Root账号
  • 8*3090
  • python 3.7
  • Ubuntu 22.04 (可使用uname -a查看)
  • CUDA 11.7 (可使用nvcc --version查看,文末附配置方式)
  • 驱动版本: (可使用nvidia-smi查看,文末附配置方式)
  • Miniconda
  • Clash for linux 代理 (本文不提供讲解)

创建环境

CUDA Toolkit 安装

你可以在这里找到 CUDA Toolkit 11.7 的安装包(选择.run文件)。

想安装老版本的CUDA Toolkit?

如果你想安装老版本的CUDA Toolkit,我建议优先安置以下几个版本:

因为pytorch官方有提供这几个版本的whl文件,后续可以通过pip直接安装torch而不需要本地编译。

要安装多版本CUDA?

我们使用wget将run文件下载到本地以后,先通过 chmod +x ./<xxxxx>.run 修改权限,然后直接运行 ./<xxxxx>.run 即可。

我们先输入 accept 同意用户许可,然后按需选择是否要安装驱动。

Options 中,我们可以指定安装路径。在此处,我们将其安装到 ~/cuda/cuda-11.7 下。其他版本也将其安装到~/cuda/cuda-<version>下。

完成配置后,选择 Install 即可完成安装。

CUDA环境变量

我们先通过 vim ~/.bashrc 打开bash配置文件。 在其中添加以下几行:

# >>> CUDA version >>>
export CUDA_VERSION=11.7
export PATH=$HOME/cuda/cuda-${CUDA_VERSION}/bin:$PATH
export LD_LIBRARY_PATH=$HOME/cuda/cuda-${CUDA_VERSION}/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/data/chenzirui/cuda/cuda-${CUDA_VERSION}/
# <<< CUDA version <<<

然后执行 source ~/.bashrc 即可。

Conda环境配置

首先我们使用conda初始化mmrotate:

Terminal window
$ conda create --name mmrotate python=3.7 -y
没有安装conda?

我们先下载配置文件

Terminal window
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

然后修改权限并运行即可:

Terminal window
$ chmod +x ./Miniconda3-latest-Linux-x86_64.sh
$ ./Miniconda3-latest-Linux-x86_64.sh

pytorch安装

Warning

请确保在安装前已经通过conda activate mmrotate激活虚拟环境。

Warning

安装前请通过 which nvccnvcc --version 来确认是否使用的是 11.7 版本的CUDA。

对于torch,你可以在官网按照版本下载。在本文中,我建议用pip如下安装(建议开启代理):

# ROCM 5.2 (Linux only)
pip install torch==1.13.0+rocm5.2 torchvision==0.14.0+rocm5.2 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/rocm5.2
# CUDA 11.6
pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu116
# CUDA 11.7
pip install torch==1.13.0+cu117 torchvision==0.14.0+cu117 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu117
# CPU only
pip install torch==1.13.0+cpu torchvision==0.14.0+cpu torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cpu

mmrotate安装

在创建的虚拟环境中,依次执行以下代码即可(版本建议一致,否则会报错)

Terminal window
pip install openmim
mim install mmcv-full==1.7.0
mim install mmdet==2.28.2
git clone https://github.com/open-mmlab/mmrotate.git
cd mmrotate
pip install -r requirements/build.txt
pip install -v -e .

至此,你已经完成了mmrotate环境配置。