Register module Example: >>> models = Registry('models') >>> @models.register_module('image-classification', 'SwinT') >>> class SwinTransformer: >>> pass >>> @models.register_module('SwinDefault') >>> class SwinTr
(self,
group_key: str = default_group,
module_name: str = None,
module_cls: type = None,
force=False)
| 77 | module_cls.group_key = group_key |
| 78 | |
| 79 | def register_module(self, |
| 80 | group_key: str = default_group, |
| 81 | module_name: str = None, |
| 82 | module_cls: type = None, |
| 83 | force=False): |
| 84 | """ Register module |
| 85 | |
| 86 | Example: |
| 87 | >>> models = Registry('models') |
| 88 | >>> @models.register_module('image-classification', 'SwinT') |
| 89 | >>> class SwinTransformer: |
| 90 | >>> pass |
| 91 | |
| 92 | >>> @models.register_module('SwinDefault') |
| 93 | >>> class SwinTransformerDefaultGroup: |
| 94 | >>> pass |
| 95 | |
| 96 | >>> class SwinTransformer2: |
| 97 | >>> pass |
| 98 | >>> MODELS.register_module('image-classification', |
| 99 | module_name='SwinT2', |
| 100 | module_cls=SwinTransformer2) |
| 101 | |
| 102 | Args: |
| 103 | group_key: Group name of which module will be registered, |
| 104 | default group name is 'default' |
| 105 | module_name: Module name |
| 106 | module_cls: Module class object |
| 107 | force (bool, optional): Whether to override an existing class with |
| 108 | the same name. Default: False. |
| 109 | |
| 110 | """ |
| 111 | if not (module_name is None or isinstance(module_name, str)): |
| 112 | raise TypeError(f'module_name must be either of None, str,' |
| 113 | f'got {type(module_name)}') |
| 114 | if module_cls is not None: |
| 115 | self._register_module( |
| 116 | group_key=group_key, |
| 117 | module_name=module_name, |
| 118 | module_cls=module_cls, |
| 119 | force=force) |
| 120 | return module_cls |
| 121 | |
| 122 | # if module_cls is None, should return a decorator function |
| 123 | def _register(module_cls): |
| 124 | self._register_module( |
| 125 | group_key=group_key, |
| 126 | module_name=module_name, |
| 127 | module_cls=module_cls, |
| 128 | force=force) |
| 129 | return module_cls |
| 130 | |
| 131 | return _register |
| 132 | |
| 133 | |
| 134 | def build_from_cfg(cfg, |
no test coverage detected