mmpretrain/docs/en/install.md

6.4 KiB

Installation

Requirements

  • Python 3.6+
  • PyTorch 1.5+
  • MMCV

The compatible MMClassification and MMCV versions are as below. Please install the correct version of MMCV to avoid installation issues.

MMClassification version MMCV version
dev mmcv>=1.3.16, <=1.5.0
0.19.0 (master) mmcv>=1.3.16, <=1.5.0
0.18.0 mmcv>=1.3.16, <=1.5.0
0.17.0 mmcv>=1.3.8, <=1.5.0
0.16.0 mmcv>=1.3.8, <=1.5.0
0.15.0 mmcv>=1.3.8, <=1.5.0
0.15.0 mmcv>=1.3.8, <=1.5.0
0.14.0 mmcv>=1.3.8, <=1.5.0
0.13.0 mmcv>=1.3.8, <=1.5.0
0.12.0 mmcv>=1.3.1, <=1.5.0
0.11.1 mmcv>=1.3.1, <=1.5.0
0.11.0 mmcv>=1.3.0
0.10.0 mmcv>=1.3.0
0.9.0 mmcv>=1.1.4
0.8.0 mmcv>=1.1.4
0.7.0 mmcv>=1.1.4
0.6.0 mmcv>=1.1.4
Since the `dev` branch is under frequent development, the `mmcv`
version dependency may be inaccurate. If you encounter problems when using
the `dev` branch, please try to update `mmcv` to the latest version.

Install Dependencies

  1. Create a conda virtual environment and activate it.

    conda create -n open-mmlab python=3.8 -y
    conda activate open-mmlab
    
  2. Install PyTorch and torchvision following the official instructions, e.g.,

    conda install pytorch torchvision -c pytorch
    
    Make sure that your compilation CUDA version and runtime CUDA version match.
    You can check the supported CUDA version for precompiled packages on the
    [PyTorch website](https://pytorch.org/).
    

    E.g.1 If you have CUDA 10.1 installed under /usr/local/cuda and would like to install PyTorch 1.5.1, you need to install the prebuilt PyTorch with CUDA 10.1.

    conda install pytorch==1.5.1 torchvision==0.6.1 cudatoolkit=10.1 -c pytorch
    

    E.g.2 If you have CUDA 11.3 installed under /usr/local/cuda and would like to install PyTorch 1.10.1, you need to install the prebuilt PyTorch with CUDA 11.3.

    conda install pytorch==1.10.1 torchvision==0.11.2 cudatoolkit=11.3 -c pytorch
    

    If you build PyTorch from source instead of installing the prebuilt package, you can use more CUDA versions such as 9.0.

  3. Install MMCV

    MMCV is a foundational library for MMClassification. And there are two versions of MMCV.

    • mmcv: lite, without CUDA ops but all other features, similar to mmcv<1.0.0. It is useful when you do not need those CUDA ops.
    • mmcv-full: comprehensive, with full features and various CUDA ops out of box. It takes longer time to build.

    If you want to install mmcv-full, you can install/compile it according to the instructions.

    A better choice is to use MIM to automatically select the mmcv-full version. MIM will automatically install mmcv-full when you use it to install MMClassification in the next section.

    pip install openmim
    

Install MMClassification repository

According to your needs, we support two install modes.

  • Use as a Python package: In this mode, you just want to call MMClassification's APIs or import MMClassification's modules in your project.
  • Develop based on MMClassification (Recommended): In this mode, you want to develop your own image classification task or new features based on MMClassification framework. For example, you want to add new dataset or new models. And you can use all tools we provided.

Use as a Python package

If you have installed MIM, simply use mim install mmcls to install MMClassification. MIM will automatically install the mmcv-full which fits your environment. In addition, MIM also has some other functions to help to do training, parameter searching and model filtering, etc.

Or, you can use pip to install MMClassification with pip install mmcls. In this situation, if you want to use mmcv-full, please install it manually in advance.

Develop based on MMClassification

In this mode, any local modifications made to the code will take effect without the need to reinstall it (unless you submit some commits and want to update the version number).

  1. Clone the MMClassification repository.

    git clone https://github.com/open-mmlab/mmclassification.git
    cd mmclassification
    
  2. [Optional] Checkout to the dev branch.

    git checkout dev
    

    Do I need to do this? The dev branch is in development and includes some experimental functions. If you want these functions or want to contribute to MMClassification, do it.

  3. Install requirements and MMClassification.

    Use MIM, and MIM will automatically install the mmcv-full which fits your environment.

    mim install -e .
    

    Or use pip, and if you want to use mmcv-full, you need to install it manually in advance.

    pip install -e .
    

Another option: Docker Image

We provide a Dockerfile to build an image.

# build an image with PyTorch 1.8.1, CUDA 10.2, CUDNN 7 and MMCV-full latest version released.
docker build -f ./docker/Dockerfile --rm -t mmcls:latest .
Make sure you've installed the [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker).

Run a container built from mmcls image with command:

docker run --gpus all --shm-size=8g -it -v {DATA_DIR}:/workspace/mmclassification/data mmcls:latest /bin/bash

Using multiple MMClassification versions

The train and test scripts already modify the PYTHONPATH to ensure the script use the MMClassification in the current directory.

To use the default MMClassification installed in the environment rather than that you are working with, you can remove the following line in those scripts

PYTHONPATH="$(dirname $0)/..":$PYTHONPATH