Merge remote-tracking branch 'upstream/dev-1.x' into sync_with_master

pull/1189/head
RunningLeon 2022-10-14 15:06:01 +08:00
commit 775cf0c03c
17 changed files with 81 additions and 22 deletions

View File

@ -26,9 +26,8 @@ RUN curl -fsSL -v -o ~/miniconda.sh -O https://repo.anaconda.com/miniconda/Mini
RUN /opt/conda/bin/conda install pytorch==${TORCH_VERSION} torchvision==${TORCHVISION_VERSION} cudatoolkit=${CUDA} -c pytorch -c conda-forge
ENV PATH /opt/conda/bin:$PATH
### install mim, mmengine, mmcv
### install mim, mmcv
RUN /opt/conda/bin/pip install openmim &&\
mim install mmengine &&\
mim install 'mmcv>=2.0.0rc1'
WORKDIR /workspace

View File

@ -68,7 +68,7 @@ commands:
name: Install mmcv
command: |
python -m pip install opencv-python==4.5.4.60 openmim
python -m mim install mmengine "mmcv>=2.0.0rc1"
python -m mim install "mmcv>=2.0.0rc1"
install_mmdeploy:
description: "Install MMDeploy"
steps:
@ -83,8 +83,6 @@ commands:
name: Install requirements
command: |
cd mmdeploy
git clone --depth 1 --branch 1.x https://github.com/open-mmlab/mmediting.git ../mmedit
python -m pip install ../mmedit
python -m mim install -r requirements/codebases.txt
python -m pip install -r requirements/tests.txt
python -m pip install -r requirements/runtime.txt

View File

@ -76,7 +76,7 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install mmdeploy
run: |
python tools/scripts/build_ubuntu_x64_ncnn.py
python -m pip install torch==1.8.2 torchvision==0.9.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cpu
python -m pip install mmcv-lite mmengine
python -m pip install mmcv-lite
python tools/scripts/build_ubuntu_x64_ncnn.py
python -c 'import mmdeploy.apis.ncnn as ncnn_api; assert ncnn_api.is_available() and ncnn_api.is_custom_ops_available()'

View File

@ -33,13 +33,12 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install mmdeploy
run: |
python tools/scripts/build_ubuntu_x64_ort.py
python -m pip install torch==1.8.2 torchvision==0.9.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cpu
python -m pip install mmcv-lite mmengine
python -m pip install mmcv-lite openmim
python tools/scripts/build_ubuntu_x64_ort.py
python -c 'import mmdeploy.apis.onnxruntime as ort_api; assert ort_api.is_available() and ort_api.is_custom_ops_available()'
- name: test mmcls full pipeline
run: |
python -m pip install openmim
python -m mim install $(cat requirements/codebases.txt | grep mmcls)
export MMDEPLOY_DIR=$(pwd)
export ONNXRUNTIME_DIR=$MMDEPLOY_DIR/../mmdeploy-dep/onnxruntime-linux-x64-1.8.1

View File

@ -33,7 +33,7 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install mmdeploy
run: |
python tools/scripts/build_ubuntu_x64_pplnn.py
python -m pip install torch==1.8.2 torchvision==0.9.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cpu
python -m pip install mmcv-lite mmengine
python -m pip install mmcv-lite
python tools/scripts/build_ubuntu_x64_pplnn.py
python -c 'import mmdeploy.apis.pplnn as pplnn_api; assert pplnn_api.is_available()'

View File

@ -33,4 +33,5 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Install mmdeploy
run: |
python -m pip install mmcv-lite
python tools/scripts/build_ubuntu_x64_torchscript.py

View File

@ -47,7 +47,6 @@ jobs:
python -m pip install openmim
python -m pip install -r requirements.txt -r requirements/backends.txt
python -m mim install "mmcv>=2.0.0rc1"
git clone --depth 1 --branch 1.x https://github.com/open-mmlab/mmediting.git ../mmedit && python -m pip install ../mmedit
python -m mim install -r requirements/codebases.txt
python -m pip install -U numpy
python -m pip list
@ -125,7 +124,6 @@ jobs:
python -m pip install openmim
python -m pip install -r requirements.txt -r requirements/backends.txt
python -m mim install "mmcv>=2.0.0rc1"
git clone --depth 1 --branch 1.x https://github.com/open-mmlab/mmediting.git ../mmedit && python -m pip install ../mmedit
CFLAGS=$CFLAGS python -m mim install -r requirements/codebases.txt
python -m pip install -U pycuda numpy
python -m pip list
@ -174,7 +172,6 @@ jobs:
python -m pip install openmim
python -m pip install -r requirements.txt -r requirements/backends.txt
python -m mim install "mmcv>=2.0.0rc1"
git clone --depth 1 --branch 1.x https://github.com/open-mmlab/mmediting.git ../mmedit && python -m pip install ../mmedit
python -m mim install -r requirements/codebases.txt
python -m pip install -U pycuda numpy
python -m pip list

View File

@ -4,6 +4,11 @@ from typing import List
from mmdeploy.utils import Codebase
from .base import BaseTask, MMCodebase, get_codebase_class
extra_dependent_library = {
Codebase.MMOCR: ['mmdet'],
Codebase.MMROTATE: ['mmdet']
}
def import_codebase(codebase_type: Codebase, custom_module_list: List = []):
"""Import a codebase package in `mmdeploy.codebase`
@ -17,11 +22,16 @@ def import_codebase(codebase_type: Codebase, custom_module_list: List = []):
codebase (Codebase): The codebase to import.
"""
import importlib
codebase_name = codebase_type.value
dependent_library = [codebase_name] + \
extra_dependent_library.get(codebase_type, [])
for lib in dependent_library + custom_module_list:
if not importlib.util.find_spec(lib):
raise ImportError(f'{lib} has not been installed. '
f'Import {lib} failed.')
if len(custom_module_list) > 0:
for custom_module in custom_module_list:
importlib.import_module(f'{custom_module}')
else:
importlib.import_module(f'mmdeploy.codebase.{codebase_type.value}')
codebase = get_codebase_class(codebase_type)
codebase.register_all_modules()

View File

@ -68,4 +68,13 @@ def get_codebase_class(codebase: Codebase) -> MMCodebase:
Returns:
type: The codebase class
"""
import importlib
try:
importlib.import_module(f'mmdeploy.codebase.{codebase.value}.deploy')
except ImportError as e:
from mmdeploy.utils import get_root_logger
logger = get_root_logger()
logger.warn(f'Import mmdeploy.codebase.{codebase.value}.deploy failed'
'Please check whether the module is the custom module.'
f'{e}')
return CODEBASE.build({'type': codebase.value})

View File

@ -23,9 +23,15 @@ class MMClassification(MMCodebase):
task_registry = MMCLS_TASK
@classmethod
def register_deploy_modules(cls):
import mmdeploy.codebase.mmcls.models # noqa: F401
@classmethod
def register_all_modules(cls):
from mmcls.utils.setup_env import register_all_modules
cls.register_deploy_modules()
register_all_modules(True)

View File

@ -22,9 +22,17 @@ class MMDetection(MMCodebase):
task_registry = MMDET_TASK
@classmethod
def register_deploy_modules(cls):
import mmdeploy.codebase.mmdet.models # noqa: F401
import mmdeploy.codebase.mmdet.ops
import mmdeploy.codebase.mmdet.structures # noqa: F401
@classmethod
def register_all_modules(cls):
from mmdet.utils.setup_env import register_all_modules
cls.register_deploy_modules()
register_all_modules(True)

View File

@ -44,9 +44,15 @@ class MMDetection3d(MMCodebase):
return MMDET3D_TASK.build(model_cfg, deploy_cfg, device)
@classmethod
def register_deploy_modules(cls):
import mmdeploy.codebase.mmdet3d.models # noqa: F401
@classmethod
def register_all_modules(cls):
from mmdet3d.utils.set_env import register_all_modules
from mmdet3d.utils.setup_env import register_all_modules
cls.register_deploy_modules()
register_all_modules(True)
@staticmethod

View File

@ -13,7 +13,13 @@ class MMEditing(MMCodebase):
task_registry = MMEDIT_TASK
@classmethod
def register_deploy_modules(cls):
import mmdeploy.codebase.mmedit.models # noqa: F401
@classmethod
def register_all_modules(cls):
from mmedit.utils.setup_env import register_all_modules
cls.register_deploy_modules()
register_all_modules(True)

View File

@ -13,11 +13,19 @@ class MMOCR(MMCodebase):
task_registry = MMOCR_TASK
@classmethod
def register_deploy_modules(cls):
import mmdeploy.codebase.mmocr.models # noqa: F401
@classmethod
def register_all_modules(cls):
from mmdet.utils.setup_env import \
register_all_modules as register_all_modules_mmdet
from mmocr.utils.setup_env import \
register_all_modules as register_all_modules_mmocr
from mmdeploy.codebase.mmdet.deploy.object_detection import MMDetection
cls.register_deploy_modules()
MMDetection.register_deploy_modules()
register_all_modules_mmocr(True)
register_all_modules_mmdet(False)

View File

@ -117,9 +117,15 @@ class MMPose(MMCodebase):
"""mmpose codebase class."""
task_registry = MMPOSE_TASK
@classmethod
def register_deploy_modules(cls):
import mmdeploy.codebase.mmpose.models # noqa: F401
@classmethod
def register_all_modules(cls):
from mmpose.utils.setup_env import register_all_modules
cls.register_deploy_modules()
register_all_modules(True)

View File

@ -104,9 +104,15 @@ class MMSegmentation(MMCodebase):
"""mmsegmentation codebase class."""
task_registry = MMSEG_TASK
@classmethod
def register_deploy_modules(cls):
import mmdeploy.codebase.mmseg.models # noqa: F401
@classmethod
def register_all_modules(cls):
from mmseg.utils.set_env import register_all_modules
cls.register_deploy_modules()
register_all_modules(True)

View File

@ -1,6 +1,6 @@
mmcls>=1.0.0rc0
mmdet>=3.0.0rc0
mmedit==1.0.0rc1
mmocr>=1.0.0rc0
mmcls>=1.0.0rc2
mmdet @ git+https://github.com/open-mmlab/mmdetection.git@dev-3.x
mmedit @ git+https://github.com/open-mmlab/mmediting.git@1.x
mmocr @ git+https://github.com/open-mmlab/mmocr.git@dev-1.x
mmpose>=1.0.0b0
mmsegmentation>=1.0.0rc0