From 97efb04c50e43645edf1fe160b54ce47f7cafeb1 Mon Sep 17 00:00:00 2001 From: Tong Gao Date: Thu, 6 Apr 2023 17:25:45 +0800 Subject: [PATCH] [CI] Add tests for pytorch 2.0 (#1836) * [CI] Add tests for pytorch 2.0 * fix * fix * fix * fix * test * update * update --- .circleci/test.yml | 15 +++- .github/workflows/merge_stage_test.yml | 103 +++++-------------------- .github/workflows/pr_stage_test.yml | 61 ++++----------- demo/tutorial.ipynb | 58 +++++++------- docs/en/notes/changelog.md | 16 ++-- 5 files changed, 84 insertions(+), 169 deletions(-) diff --git a/.circleci/test.yml b/.circleci/test.yml index 2fb56d39..4d59be17 100644 --- a/.circleci/test.yml +++ b/.circleci/test.yml @@ -80,7 +80,7 @@ jobs: type: string cuda: type: enum - enum: ["10.1", "10.2", "11.1"] + enum: ["10.1", "10.2", "11.1", "11.7"] cudnn: type: integer default: 7 @@ -150,8 +150,8 @@ workflows: - lint - build_cpu: name: maximum_version_cpu - torch: 1.13.0 - torchvision: 0.14.0 + torch: 2.0.0 + torchvision: 0.15.1 python: 3.9.0 requires: - minimum_version_cpu @@ -167,6 +167,15 @@ workflows: cuda: "10.2" requires: - hold + - build_cuda: + name: mainstream_version_gpu + torch: 2.0.0 + # Use double quotation mark to explicitly specify its type + # as string instead of number + cuda: "11.7" + cudnn: 8 + requires: + - hold merge_stage_test: when: not: diff --git a/.github/workflows/merge_stage_test.yml b/.github/workflows/merge_stage_test.yml index 0bfb1116..856ede83 100644 --- a/.github/workflows/merge_stage_test.yml +++ b/.github/workflows/merge_stage_test.yml @@ -19,7 +19,7 @@ concurrency: jobs: build_cpu_py: - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 strategy: matrix: python-version: [3.8, 3.9] @@ -28,15 +28,15 @@ jobs: - torch: 1.8.1 torchvision: 0.9.1 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Upgrade pip run: pip install pip --upgrade - name: Install PyTorch - run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html + run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/cpu/torch_stable.html - name: Install MMEngine run: pip install git+https://github.com/open-mmlab/mmengine.git@main - name: Install MMCV @@ -56,7 +56,7 @@ jobs: coverage report -m build_cpu_pt: - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 strategy: matrix: python-version: [3.7] @@ -78,16 +78,19 @@ jobs: torchvision: 0.13.1 - torch: 1.13.0 torchvision: 0.14.0 + - torch: 2.0.0 + torchvision: 0.15.1 + python-version: 3.8 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Upgrade pip run: pip install pip --upgrade - name: Install PyTorch - run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html + run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/cpu/torch_stable.html - name: Install MMEngine run: pip install git+https://github.com/open-mmlab/mmengine.git@main - name: Install MMCV @@ -116,86 +119,20 @@ jobs: name: codecov-umbrella fail_ci_if_error: false - build_cu102: - runs-on: ubuntu-18.04 - container: - image: pytorch/pytorch:1.8.1-cuda10.2-cudnn7-devel - strategy: - matrix: - python-version: [3.7] - include: - - torch: 1.8.1 - cuda: 10.2 - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Upgrade pip - run: pip install pip --upgrade - - name: Fetch GPG keys - run: | - apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub - apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub - - name: Install Python-dev - run: apt-get update && apt-get install -y python${{matrix.python-version}}-dev - if: ${{matrix.python-version != 3.9}} - - name: Install system dependencies - run: | - apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 - - name: Install mmocr dependencies - run: | - pip install git+https://github.com/open-mmlab/mmengine.git@main - pip install -U openmim - mim install 'mmcv >= 2.0.0rc1' - pip install git+https://github.com/open-mmlab/mmdetection.git@dev-3.x - pip install -r requirements/tests.txt - - name: Build and install - run: | - python setup.py check -m -s - TORCH_CUDA_ARCH_LIST=7.0 pip install -e . - - build_cu116: - runs-on: ubuntu-18.04 - container: - image: pytorch/pytorch:1.13.0-cuda11.6-cudnn8-devel - strategy: - matrix: - python-version: [3.7] - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Upgrade pip - run: pip install pip --upgrade - - name: Fetch GPG keys - run: | - apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub - apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub - - name: Install system dependencies - run: apt-get update && apt-get install -y git ffmpeg libturbojpeg - - name: Install mmocr dependencies - run: | - pip install git+https://github.com/open-mmlab/mmengine.git@main - pip install -U openmim - mim install 'mmcv >= 2.0.0rc1' - pip install git+https://github.com/open-mmlab/mmdetection.git@dev-3.x - pip install -r requirements/tests.txt - - name: Build and install - run: | - python setup.py check -m -s - TORCH_CUDA_ARCH_LIST=7.0 pip install -e . build_windows: - runs-on: ${{ matrix.os }} + runs-on: windows-2022 strategy: matrix: - os: [windows-2022] python: [3.7] platform: [cpu, cu111] + torch: [1.8.1] + torchvision: [0.9.1] + include: + - python-version: 3.8 + platform: cu117 + torch: 2.0.0 + torchvision: 0.15.1 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python }} @@ -207,7 +144,7 @@ jobs: - name: Install lmdb run: pip install lmdb - name: Install PyTorch - run: pip install torch==1.8.1+${{matrix.platform}} torchvision==0.9.1+${{matrix.platform}} -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html + run: pip install torch==${{matrix.torch}}+${{matrix.platform}} torchvision==${{matrix.torchvision}}+${{matrix.platform}} -f https://download.pytorch.org/whl/${{matrix.platform}}/torch_stable.html - name: Install mmocr dependencies run: | pip install git+https://github.com/open-mmlab/mmengine.git@main diff --git a/.github/workflows/pr_stage_test.yml b/.github/workflows/pr_stage_test.yml index 30d1b354..e9344e5a 100644 --- a/.github/workflows/pr_stage_test.yml +++ b/.github/workflows/pr_stage_test.yml @@ -17,7 +17,7 @@ concurrency: jobs: build_cpu: - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 strategy: matrix: python-version: [3.7] @@ -25,15 +25,15 @@ jobs: - torch: 1.8.1 torchvision: 0.9.1 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Upgrade pip run: pip install pip --upgrade - name: Install PyTorch - run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/torch_stable.html + run: pip install torch==${{matrix.torch}}+cpu torchvision==${{matrix.torchvision}}+cpu -f https://download.pytorch.org/whl/cpu/torch_stable.html - name: Install MMEngine run: pip install git+https://github.com/open-mmlab/mmengine.git@main - name: Install MMCV @@ -61,55 +61,24 @@ jobs: name: codecov-umbrella fail_ci_if_error: false - build_cu102: - runs-on: ubuntu-18.04 - container: - image: pytorch/pytorch:1.8.1-cuda10.2-cudnn7-devel - strategy: - matrix: - python-version: [3.8] - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Upgrade pip - run: pip install pip --upgrade - - name: Fetch GPG keys - run: | - apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub - apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub - - name: Install Python-dev - run: apt-get update && apt-get install -y python${{matrix.python-version}}-dev - if: ${{matrix.python-version != 3.9}} - - name: Install system dependencies - run: | - apt-get update - apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libxrender-dev - - name: Install mmocr dependencies - run: | - pip install git+https://github.com/open-mmlab/mmengine.git@main - pip install -U openmim - mim install 'mmcv >= 2.0.0rc1' - pip install git+https://github.com/open-mmlab/mmdetection.git@dev-3.x - pip install -r requirements/tests.txt - - name: Build and install - run: | - python setup.py check -m -s - TORCH_CUDA_ARCH_LIST=7.0 pip install -e . build_windows: - runs-on: ${{ matrix.os }} + runs-on: windows-2022 strategy: matrix: - os: [windows-2022] python: [3.7] platform: [cpu, cu111] + torch: [1.8.1] + torchvision: [0.9.1] + include: + - python-version: 3.8 + platform: cu117 + torch: 2.0.0 + torchvision: 0.15.1 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} - name: Upgrade pip @@ -117,7 +86,7 @@ jobs: - name: Install lmdb run: pip install lmdb - name: Install PyTorch - run: pip install torch==1.8.1+${{matrix.platform}} torchvision==0.9.1+${{matrix.platform}} -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html + run: pip install torch==${{matrix.torch}}+${{matrix.platform}} torchvision==${{matrix.torchvision}}+${{matrix.platform}} -f https://download.pytorch.org/whl/${{matrix.platform}}/torch_stable.html - name: Install mmocr dependencies run: | pip install git+https://github.com/open-mmlab/mmengine.git@main diff --git a/demo/tutorial.ipynb b/demo/tutorial.ipynb index 2980994b..11e152a9 100644 --- a/demo/tutorial.ipynb +++ b/demo/tutorial.ipynb @@ -78,8 +78,6 @@ "source": [ "!git clone https://github.com/open-mmlab/mmocr.git\n", "%cd mmocr\n", - "!git checkout 1.x\n", - "!pip install -r requirements.txt\n", "!pip install -v -e .\n", "# \"-v\" increases pip's verbosity.\n", "# \"-e\" means installing the project in editable mode,\n", @@ -357,13 +355,13 @@ }, { "cell_type": "markdown", + "metadata": { + "id": "CW2AYtBUA2yb" + }, "source": [ "In order to train SAR to its best state on toy dataset, we need to modify some hyperparameters in the config to accomodate some of the settings of colab.\n", "For more explanation about the config and its fields, please refer to [documentation](https://mmocr.readthedocs.io/en/dev-1.x/user_guides/config.html)." - ], - "metadata": { - "id": "CW2AYtBUA2yb" - } + ] }, { "cell_type": "code", @@ -480,17 +478,22 @@ }, { "cell_type": "markdown", + "metadata": { + "id": "xxehFhP7N_xf" + }, "source": [ "### Toy Dataset\n", "\n", "With the checkpoint we obtained from the last section, we can evaluate it on the toy dataset again. Some more explanataions about the evaulation metrics are available [here](https://mmocr.readthedocs.io/en/dev-1.x/basic_concepts/evaluation.html). " - ], - "metadata": { - "id": "xxehFhP7N_xf" - } + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "PHneq5LxRT6z" + }, + "outputs": [], "source": [ "from mmengine.runner import Runner\n", "import time\n", @@ -504,47 +507,42 @@ "\n", "runner = Runner.from_cfg(cfg)\n", "runner.test()" - ], - "metadata": { - "id": "PHneq5LxRT6z" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", - "source": [ - "It's also possible to evaluate with a stronger and more generalized pretrained weight, which were trained on larger datasets and achieved quite competitve acadmical performance, though it may not defeat the previous checkpoint overfitted to the toy dataset. ([readme](https://mmocr.readthedocs.io/en/dev-1.x/textrecog_models.html#sar))\n" - ], "metadata": { "id": "TXmgGRcjOba2" - } + }, + "source": [ + "It's also possible to evaluate with a stronger and more generalized pretrained weight, which were trained on larger datasets and achieved quite competitve acadmical performance, though it may not defeat the previous checkpoint overfitted to the toy dataset. ([readme](https://mmocr.readthedocs.io/en/dev-1.x/textrecog_models.html#sar))\n" + ] }, { "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Uj8qFQjYRCxK" + }, + "outputs": [], "source": [ "# The location of pretrained weight\n", "cfg['load_from'] = 'https://download.openmmlab.com/mmocr/textrecog/sar/sar_resnet31_parallel-decoder_5e_st-sub_mj-sub_sa_real/sar_resnet31_parallel-decoder_5e_st-sub_mj-sub_sa_real_20220915_171910-04eb4e75.pth'\n", "cfg.visualizer.name = f'{time.localtime()}'\n", "runner = Runner.from_cfg(cfg)\n", "runner.test()" - ], - "metadata": { - "id": "Uj8qFQjYRCxK" - }, - "execution_count": null, - "outputs": [] + ] }, { "cell_type": "markdown", + "metadata": { + "id": "WctaeVsYR4W_" + }, "source": [ "### SVTP Dataset\n", "\n", "SVTP dataset is one of the six commonly used academic test sets that systematically reflects a text recognizer's performance. Now we will evaluate SAR on this dataset, and we are going to use [Dataset Preparer](https://mmocr.readthedocs.io/en/dev-1.x/user_guides/data_prepare/dataset_preparer.html) to get it prepared first." - ], - "metadata": { - "id": "WctaeVsYR4W_" - } + ] }, { "cell_type": "code", diff --git a/docs/en/notes/changelog.md b/docs/en/notes/changelog.md index 2e5f8c6a..44ef01b4 100644 --- a/docs/en/notes/changelog.md +++ b/docs/en/notes/changelog.md @@ -1,6 +1,8 @@ # Changelog of v1.x -## v1.0.0rc6 (07/03/2023) +## v1.0.0 (04/06/2023) + +## v1.0.0rc6 (03/07/2023) ### Highlights @@ -77,7 +79,7 @@ This version requires MMEngine >= 0.6.0, MMCV >= 2.0.0rc4 and MMDet >= 3.0.0rc5. **Full Changelog**: https://github.com/open-mmlab/mmocr/compare/v1.0.0rc5...v1.0.0rc6 -## v1.0.0rc5 (06/01/2023) +## v1.0.0rc5 (01/06/2023) ### Highlights @@ -141,7 +143,7 @@ This version requires MMEngine >= 0.6.0, MMCV >= 2.0.0rc4 and MMDet >= 3.0.0rc5. **Full Changelog**: https://github.com/open-mmlab/mmocr/compare/v1.0.0rc4...v1.0.0rc5 -## v1.0.0rc4 (06/12/2022) +## v1.0.0rc4 (12/06/2022) ### Highlights @@ -213,7 +215,7 @@ This version requires MMEngine >= 0.6.0, MMCV >= 2.0.0rc4 and MMDet >= 3.0.0rc5. **Full Changelog**: https://github.com/open-mmlab/mmocr/compare/v1.0.0rc3...v1.0.0rc4 -## v1.0.0rc3 (03/11/2022) +## v1.0.0rc3 (11/03/2022) ### Highlights @@ -246,11 +248,11 @@ This version requires MMEngine >= 0.6.0, MMCV >= 2.0.0rc4 and MMDet >= 3.0.0rc5. **Full Changelog**: https://github.com/open-mmlab/mmocr/compare/v1.0.0rc2...v1.0.0rc3 -## v1.0.0rc2 (14/10/2022) +## v1.0.0rc2 (10/14/2022) This release relaxes the version requirement of `MMEngine` to `>=0.1.0, < 1.0.0`. -## v1.0.0rc1 (9/10/2022) +## v1.0.0rc1 (10/09/2022) ### Highlights @@ -303,7 +305,7 @@ We release the weights for all the text recognition models in MMOCR 1.0 architec **Full Changelog**: https://github.com/open-mmlab/mmocr/compare/v1.0.0rc0...v1.0.0rc1 -## v1.0.0rc0 (1/9/2022) +## v1.0.0rc0 (09/01/2022) We are excited to announce the release of MMOCR 1.0.0rc0. MMOCR 1.0.0rc0 is the first version of MMOCR 1.x, a part of the OpenMMLab 2.0 projects.