| import warnings |
|
|
| from annotator.uniformer.mmcv.cnn import MODELS as MMCV_MODELS |
| from annotator.uniformer.mmcv.utils import Registry |
|
|
| MODELS = Registry('models', parent=MMCV_MODELS) |
|
|
| BACKBONES = MODELS |
| NECKS = MODELS |
| HEADS = MODELS |
| LOSSES = MODELS |
| SEGMENTORS = MODELS |
|
|
|
|
| def build_backbone(cfg): |
| """Build backbone.""" |
| return BACKBONES.build(cfg) |
|
|
|
|
| def build_neck(cfg): |
| """Build neck.""" |
| return NECKS.build(cfg) |
|
|
|
|
| def build_head(cfg): |
| """Build head.""" |
| return HEADS.build(cfg) |
|
|
|
|
| def build_loss(cfg): |
| """Build loss.""" |
| return LOSSES.build(cfg) |
|
|
|
|
| def build_segmentor(cfg, train_cfg=None, test_cfg=None): |
| """Build segmentor.""" |
| if train_cfg is not None or test_cfg is not None: |
| warnings.warn( |
| 'train_cfg and test_cfg is deprecated, ' |
| 'please specify them in model', UserWarning) |
| assert cfg.get('train_cfg') is None or train_cfg is None, \ |
| 'train_cfg specified in both outer field and model field ' |
| assert cfg.get('test_cfg') is None or test_cfg is None, \ |
| 'test_cfg specified in both outer field and model field ' |
| return SEGMENTORS.build( |
| cfg, default_args=dict(train_cfg=train_cfg, test_cfg=test_cfg)) |
|
|