mindformers.tools.register.MindFormerRegister
- class mindformers.tools.register.MindFormerRegister[源代码]
MindFormers的注册接口,提供了接口注册和获取的相关方法。
样例:
>>> from mindformers.tools import MindFormerModuleType, MindFormerRegister >>> >>> >>> # Using decorator to register the class >>> @MindFormerRegister.register(MindFormerModuleType.CONFIG) >>> class MyConfig: ... def __init__(self, param): ... self.param = param >>> >>> >>> # Using method to register the class >>> MindFormerRegister.register_cls(register_class=MyConfig, module_type=MindFormerRegister) >>> >>> print(MindFormerRegister.is_exist(module_type=MindFormerModuleType.CONFIG, class_name="MyConfig")) True >>> cls = MindFormerRegister.get_cls(module_type=MindFormerModuleType.CONFIG, class_name="MyConfig") >>> print(cls.__name__) MyConfig >>> instance = MindFormerRegister.get_instance_from_cfg(cfg={'type': 'MyConfig', 'param': 0}, ... module_type=MindFormerModuleType.CONFIG) >>> print(instance.__class__.__name__) MyConfig >>> print(instance.param) 0 >>> instance = MindFormerRegister.get_instance(module_type=MindFormerModuleType.CONFIG, ... class_name="MyConfig", ... param=0) >>> print(instance.__class__.__name__) MyConfig >>> print(instance.param) 0
- classmethod get_cls(module_type, class_name=None)[源代码]
从注册字典中获取类。
- 参数:
module_type (MindFormerModuleType) - MindFormers的模块类型名。
class_name (str, 可选) - 类名。默认值:
None
。
- 返回:
一个注册了的类。
- 异常:
ValueError - 在注册字典中未找到类型是 module_type 的类 class_name 。
ValueError - 在注册字典中未找到 module_type 。
- classmethod get_instance(module_type=MindFormerModuleType.TOOLS, class_name=None, **kwargs)[源代码]
获取注册字典中类的实例。
- 参数:
module_type (MindFormerModuleType, 可选) - MindFormers的模块类型名。默认值:
MindFormerModuleType.TOOLS
。class_name (str, 可选) - 类名。默认值:
None
。kwargs (Any) - 额外的关键字参数,用于构造类的实例。
- 返回:
一个类的实例。
- 异常:
ValueError - class_name 不能为
None
。ValueError - 在注册字典中未找到类型是 module_type 的类 class_name 。
- classmethod get_instance_from_cfg(cfg, module_type=MindFormerModuleType.TOOLS, default_args=None)[源代码]
通过配置获取注册字典中类的实例。
- 参数:
cfg (dict) - 配置字典。应至少包含键 "type" 。
module_type (MindFormerModuleType, 可选) - MindFormers的模块类型名。默认值:
MindFormerModuleType.TOOLS
。default_args (dict, 可选) - 默认的初始化参数。默认值:
None
。
- 返回:
一个类的实例。
- 异常:
TypeError - cfg 必须为一个配置。
KeyError - cfg 或 default_args 必须包含键 "type" 。
TypeError - default_args 必须为一个字典或为
None
。ValueError - 在注册字典中未找到类型是 module_type 的类 class_name 。
- classmethod is_exist(module_type, class_name=None)[源代码]
判断给定的类名是否在当前的类型组中。若 class_name 没有给定,则判断给定的类名是否在当前的注册字典中。
- 参数:
module_type (MindFormerModuleType) - MindFormers的模块类型名。
class_name (str, 可选) - 类名。默认值:
None
。
- 返回:
一个布尔值,表示是否存在。