Spaces:
Runtime error
Runtime error
# Copyright (c) OpenMMLab. All rights reserved. | |
import torch | |
from mmengine.dist import get_world_size | |
from mmengine.logging import print_log | |
from mmdet.registry import MODELS | |
from mmdet.utils import ConfigType, OptConfigType, OptMultiConfig | |
from .single_stage import SingleStageDetector | |
class RTMDet(SingleStageDetector): | |
"""Implementation of RTMDet. | |
Args: | |
backbone (:obj:`ConfigDict` or dict): The backbone module. | |
neck (:obj:`ConfigDict` or dict): The neck module. | |
bbox_head (:obj:`ConfigDict` or dict): The bbox head module. | |
train_cfg (:obj:`ConfigDict` or dict, optional): The training config | |
of ATSS. Defaults to None. | |
test_cfg (:obj:`ConfigDict` or dict, optional): The testing config | |
of ATSS. Defaults to None. | |
data_preprocessor (:obj:`ConfigDict` or dict, optional): Config of | |
:class:`DetDataPreprocessor` to process the input data. | |
Defaults to None. | |
init_cfg (:obj:`ConfigDict` or dict, optional): the config to control | |
the initialization. Defaults to None. | |
use_syncbn (bool): Whether to use SyncBatchNorm. Defaults to True. | |
""" | |
def __init__(self, | |
backbone: ConfigType, | |
neck: ConfigType, | |
bbox_head: ConfigType, | |
train_cfg: OptConfigType = None, | |
test_cfg: OptConfigType = None, | |
data_preprocessor: OptConfigType = None, | |
init_cfg: OptMultiConfig = None, | |
use_syncbn: bool = True) -> None: | |
super().__init__( | |
backbone=backbone, | |
neck=neck, | |
bbox_head=bbox_head, | |
train_cfg=train_cfg, | |
test_cfg=test_cfg, | |
data_preprocessor=data_preprocessor, | |
init_cfg=init_cfg) | |
# TODO: Waiting for mmengine support | |
if use_syncbn and get_world_size() > 1: | |
torch.nn.SyncBatchNorm.convert_sync_batchnorm(self) | |
print_log('Using SyncBatchNorm()', 'current') | |