recover scope mechanism for mmyolo (#1495)
parent
6ed62ca9f5
commit
f8e65bb43c
|
@ -47,8 +47,7 @@ class MMCodebase(metaclass=ABCMeta):
|
||||||
type=task.value,
|
type=task.value,
|
||||||
model_cfg=model_cfg,
|
model_cfg=model_cfg,
|
||||||
deploy_cfg=deploy_cfg,
|
deploy_cfg=deploy_cfg,
|
||||||
device=device,
|
device=device))
|
||||||
_scope_='mmdeploy'))
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def register_deploy_modules(cls):
|
def register_deploy_modules(cls):
|
||||||
|
@ -84,4 +83,4 @@ def get_codebase_class(codebase: Codebase) -> MMCodebase:
|
||||||
logger.warn(f'Import mmdeploy.codebase.{codebase.value}.deploy failed'
|
logger.warn(f'Import mmdeploy.codebase.{codebase.value}.deploy failed'
|
||||||
'Please check whether the module is the custom module.'
|
'Please check whether the module is the custom module.'
|
||||||
f'{e}')
|
f'{e}')
|
||||||
return CODEBASE.build({'type': codebase.value, '_scope_': 'mmdeploy'})
|
return CODEBASE.build({'type': codebase.value})
|
||||||
|
|
|
@ -13,6 +13,7 @@ from torch.utils.data import DataLoader, Dataset
|
||||||
|
|
||||||
from mmdeploy.utils import (get_backend_config, get_codebase,
|
from mmdeploy.utils import (get_backend_config, get_codebase,
|
||||||
get_codebase_config, get_root_logger)
|
get_codebase_config, get_root_logger)
|
||||||
|
from mmdeploy.utils.config_utils import get_codebase_external_module
|
||||||
from mmdeploy.utils.dataset import is_can_sort_dataset, sort_dataset
|
from mmdeploy.utils.dataset import is_can_sort_dataset, sort_dataset
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,15 +24,36 @@ class BaseTask(metaclass=ABCMeta):
|
||||||
model_cfg (str | Config): Model config file.
|
model_cfg (str | Config): Model config file.
|
||||||
deploy_cfg (str | Config): Deployment config file.
|
deploy_cfg (str | Config): Deployment config file.
|
||||||
device (str): A string specifying device type.
|
device (str): A string specifying device type.
|
||||||
|
experiment_name (str, optional): Name of current experiment.
|
||||||
|
If not specified, timestamp will be used as
|
||||||
|
``experiment_name``. Defaults to ``None``.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, model_cfg: Config, deploy_cfg: Config, device: str):
|
def __init__(self,
|
||||||
|
model_cfg: Config,
|
||||||
|
deploy_cfg: Config,
|
||||||
|
device: str,
|
||||||
|
experiment_name: str = 'BaseTask'):
|
||||||
|
|
||||||
self.model_cfg = model_cfg
|
self.model_cfg = model_cfg
|
||||||
self.deploy_cfg = deploy_cfg
|
self.deploy_cfg = deploy_cfg
|
||||||
self.device = device
|
self.device = device
|
||||||
|
|
||||||
self.codebase = get_codebase(deploy_cfg)
|
self.codebase = get_codebase(deploy_cfg)
|
||||||
|
self.experiment_name = experiment_name
|
||||||
|
|
||||||
|
# init scope
|
||||||
|
from .. import import_codebase
|
||||||
|
custom_module_list = get_codebase_external_module(deploy_cfg)
|
||||||
|
import_codebase(self.codebase, custom_module_list)
|
||||||
|
|
||||||
|
from mmengine.registry import DefaultScope
|
||||||
|
if not DefaultScope.check_instance_created(self.experiment_name):
|
||||||
|
self.scope = DefaultScope.get_instance(
|
||||||
|
self.experiment_name,
|
||||||
|
scope_name=self.model_cfg.get('default_scope'))
|
||||||
|
else:
|
||||||
|
self.scope = DefaultScope.get_instance(self.experiment_name)
|
||||||
|
|
||||||
# lazy build visualizer
|
# lazy build visualizer
|
||||||
self.visualizer = self.model_cfg.get('visualizer', None)
|
self.visualizer = self.model_cfg.get('visualizer', None)
|
||||||
|
|
Loading…
Reference in New Issue