添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在这一节中,我们展示了如何用 PyTorch 准备环境。

MMselfSup 可在 Linux 上运行 (Windows 和 macOS 平台不完全支持)。 要求 Python 3.6+, CUDA 9.2+ 和 PyTorch 1.5+。

如果您对 PyTorch 很熟悉,或者已经安装了它,可以忽略这部分并转到 下一节 , 不然你可以按照下列步骤进行准备。

Step 0. 官方网址 下载并安装 Miniconda。

Step 1. 创建 conda 环境并激活

conda create --name openmmlab python=3.8 -y
conda activate openmmlab

Step 2. 按照 官方教程 安装 PyTorch, 例如

GPU 平台:

conda install pytorch torchvision -c pytorch

CPU 平台:

conda install pytorch torchvision cpuonly -c pytorch

Step 1. 安装 MMSelfSup.

实例 a: 如果您直接或者开发 MMSelfSup, 从源安装:

git clone https://github.com/open-mmlab/mmselfsup.git
cd mmselfsup
pip install -v -e .
# "-v" means verbose, or more output
# "-e" means installing a project in editable mode,
# thus any local modifications made to the code will take effect without reinstallation.

实例 b: 如果您以 mmselfsup 为依赖项或者第三方库, 可使用 pip 安装:

pip install mmselfsup
        strides=(1, 2, 2, 2),
        dilations=(1, 1, 1, 1),
        out_indices=[4],  # 0: conv-1, x: stage-x
        norm_cfg=dict(type='BN'),
        frozen_stages=-1),
    head=dict(
        type='ClsHead', with_avg_pool=True, in_channels=2048,
        num_classes=1000))
model = build_algorithm(model_config).cuda()
image = torch.randn((1, 3, 224, 224)).cuda()
label = torch.tensor([1]).cuda()
loss = model.forward_train(image, label)

如果您能顺利运行上面脚本,恭喜您已成功配置好所有环境。

自定义安装

基准测试

依照 最优方案 可以保证基本功能, 如果您需要一些下游任务来对您的预训练模型进行评测,例如检测或者分割, 请安装 MMDetectionMMSegmentation

如果您不运行 MMDetection 和 MMSegmentation 基准测试, 可以不进行安装。

您可以使用以下命令进行安装:

pip install mmdet mmsegmentation

若需要更详细的信息, 您可以参考 MMDetectionMMSegmentation 的安装指导页面。

CUDA 版本

在安装 PyTorch 时, 您需要确认 CUDA 版本。 若您对此不清楚,可以按照我们的建议:

  • 对于安培架构的 NVIDIA GPUs, 例如 GeForce 30 系列或者 NVIDIA A100, CUDA 11 是必须的。

  • 对于较老版本的 NVIDIA GPUs, CUDA 11 是兼容的, 但是 CUDA 10.2 具有更好的兼容性以及更加轻量化。

  • 请确认您的 GPU 驱动满足最小版本需求。 请参考 此表 获取更多信息。

    如果您按照我们的最优方案安装 CUDA runtime 库是足够的,因为本地不会编译 CUDA 代码。但是如果您希望从源编译 MMCV 或开发其它 CUDA 算子, 您需要安装完整的 CUDA 工具包, 从 NVIDIA 的网站,https://developer.nvidia.com/cuda-downloads,并它的版本需要和 PyTorch 的 CUDA 版本相匹配。如准确的 cudatoolkit 版本 在 conda install 命令中。

    不使用 MIM 安装 MMCV

    MMCV 包含了 C++ 和 CUDA 扩展, 因此以一种复杂的方式依赖于 PyTorch。 MIM 自动解决了这种依赖关系,并使安装更加容易,然而,这不是必须的。

    使用 pip 安装 MMCV, 而不是 MIM, 请参考 MMCV 安装指南。 这需要根据 PyTorch 版本及其 CUDA 版本手动指定一个链接。

    例如, 下列命令安装了 mmcv-full, 基于 PyTorch 1.10.x 和 CUDA 11.3。

    pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10/index.html
    

    另一种选择: 使用 Docker

    我们提供了一个配置好所有环境的 Dockerfile

    # build an image with PyTorch 1.6.0, CUDA 10.1, CUDNN 7.
    docker build -f ./docker/Dockerfile --rm -t mmselfsup:torch1.10.0-cuda11.3-cudnn8 .
    

    重要: 请确保您安装了 nvidia-container-toolkit

    运行下面命令:

    docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/workspace/mmselfsup/data mmselfsup:torch1.10.0-cuda11.3-cudnn8 /bin/bash
    

    {DATA_DIR} 是保存你所有数据集的根目录。

    在 Google Colab 上安装

    Google Colab 一般已经安装了 PyTorch, 因此,我们只需要使用以下命令安装 MMCV 和 MMSeflSup。

    Step 0. 使用 MIM 安装 MMCV

    !pip3 install openmim
    !mim install mmcv-full
    

    Step 1. 安装 MMSelfSup

    !git clone https://github.com/open-mmlab/mmselfsup.git
    %cd mmselfsup
    !pip install -e .
    

    Step 2. 安装校验

    import mmselfsup
    print(mmselfsup.__version__)
    # Example output: 0.9.0
    

    Within Jupyter, the exclamation mark ! is used to call external executables and %cd is a magic command to change the current working directory of Python.

    使用不同版本的 MMSelfSup

    如果在您本地安装了多个版本的 MMSelfSup, 我们推荐您为这多个版本创建不同的虚拟环境。

    另外一个方式就是在您程序的入口脚本处,插入以下代码片段 (train.py, test.py 或则其他任何程序入口脚本)

    import os.path as osp
    import sys
    sys.path.insert(0, osp.join(osp.dirname(osp.abspath(__file__)), '../'))
    

    或则在不同版本的 MMSelfSup 的主目录中运行以下命令:

    export PYTHONPATH="$(pwd)":$PYTHONPATH