def build_metrics(cfg): if isinstance(cfg, (list, tuple)): metrics = [build_metrics(c) for c in cfg] else: metrics = [build_from_cfg(cfg, registry, 'metrics')] return metrics
def __call__(self, model): if hasattr(model, 'module'): model = model.module optimizer_cfg = self.optimizer_cfg.copy() # if no paramwise option is specified, just use the global setting if not self.paramwise_cfg: optimizer_cfg['params'] = model.parameters() return build_from_cfg(optimizer_cfg, registry, 'optimizer') # set param-wise lr and weight decay recursively params = [] self.add_params(params, model) optimizer_cfg['params'] = params return build_from_cfg(optimizer_cfg, registry, 'optimizer')
def build_dataset(cfg, default_args=None): if isinstance(cfg, (list, tuple)): dataset = ConcatDataset([build_dataset(c, default_args) for c in cfg]) else: dataset = build_from_cfg(cfg, registry, 'dataset', default_args) return dataset
def __init__(self, transforms): assert isinstance(transforms, collections.abc.Sequence) self.transforms = [] for transform in transforms: if isinstance(transform, dict): transform = build_from_cfg(transform, registry, 'pipeline') self.transforms.append(transform) elif callable(transform): self.transforms.append(transform) else: raise TypeError('transform must be callable or a dict')
def build_activation_layer(cfg): """Build activation layer. Args: cfg (dict): The activation layer config, which should contain: - type (str): Layer type. - layer args: Args needed to instantiate an activation layer. Returns: nn.Module: Created activation layer. """ return build_from_cfg(cfg, registry, 'activation')
def build(cfg, module_name, default_args=None): """Build a module. Args: cfg (dict, list[dict]): The config of modules, is is either a dict or a list of configs. registry (:obj:`Registry`): A registry the module belongs to. default_args (dict, optional): Default arguments to build the module. Defaults to None. Returns: nn.Module: A built nn module. """ if isinstance(cfg, list): modules = [ build_from_cfg(cfg_, registry, module_name, default_args) for cfg_ in cfg ] return nn.Sequential(*modules) else: return build_from_cfg(cfg, registry, module_name, default_args)
def build_dataset(cfg, default_args=None): from .dataset_wrappers import (ClassBalancedDataset, ConcatDataset, RepeatDataset) if isinstance(cfg, (list, tuple)): dataset = ConcatDataset([build_dataset(c, default_args) for c in cfg]) elif cfg['typename'] == 'RepeatDataset': dataset = RepeatDataset( build_dataset(cfg['dataset'], default_args), cfg['times']) elif cfg['typename'] == 'ClassBalancedDataset': dataset = ClassBalancedDataset( build_dataset(cfg['dataset'], default_args), cfg['oversample_thr']) elif isinstance(cfg.get('ann_file'), (list, tuple)): dataset = _concat_dataset(cfg, default_args) else: dataset = build_from_cfg(cfg, registry, 'dataset', default_args) return dataset
def build_engine(cfg): return build_from_cfg(cfg, registry, 'engine')
def build_loss(cfg): return build_from_cfg(cfg, registry, 'loss')
def build_converter(cfg): return build_from_cfg(cfg, registry, 'converter')
def build_loss(cfg): loss = build_from_cfg(cfg, registry, 'loss') return loss
def build_model(cfg): return build_from_cfg(cfg, registry, 'sal_detector')
def build_meshgrid(cfg): return build_from_cfg(cfg, registry, 'meshgrid')
def build_backbone(cfg): """Build backbone.""" return build_from_cfg(cfg, registry, 'backbone')
def build_assigner(cfg, **default_args): """Builder of box assigner.""" return build_from_cfg(cfg, registry, 'bbox_assigner', default_args)
def build_bbox_coder(cfg, **default_args): bbox_coder = build_from_cfg(cfg, registry, 'bbox_coder', default_args) return bbox_coder
def build_optimizer_constructor(cfg): return build_from_cfg(cfg, registry, 'optimizer_builder')
def build_iou_calculator(cfg, default_args=None): """Builder of IoU calculator.""" return build_from_cfg(cfg, registry, 'iou_calculator', default_args)
def build_head(cfg): """Build head.""" return build_from_cfg(cfg, registry, 'head')
def build_base_anchor(cfg): return build_from_cfg(cfg, registry, 'base_anchor')
def build_detector(cfg): return build_from_cfg(cfg, registry, 'detector')
def build_hook(cfg): return build_from_cfg(cfg, registry, 'hook')
def build_neck(cfg): """Build neck.""" return build_from_cfg(cfg, registry, 'neck')
def build_criterion(cfg): return build_from_cfg(cfg, registry, 'criterion')
def build_sampler(cfg, **default_args): """Builder of box sampler.""" return build_from_cfg(cfg, registry, 'bbox_sampler', default_args)
def build_sequencer(cfg): """Build sequencer.""" return build_from_cfg(cfg, registry, 'sequencer')