这里主要的原因就是说,如果optimizer放在model中运算即不用hook操作,那么必须要这样换。 @TTA.register_module() class Decrator(BaseSegmentor): def __init__(self, **cfg): super(BaseSegmentor, self).__init__() self.model = build_segmentor(deepcopy(cfg['model'])) # build encoder-decoder 放在...
init 初始化函数,一般不会直接创建一个 Config 对象,而是从文件中读取 dict 以及其他信息作为参数传入初始化函数中,返回一个 Config 对象 代码语言:javascript 代码运行次数:0 运行 AI代码解释 def __init__(self, cfg_dict=None, cfg_text=None, filename=None): if cfg_dict is None: cfg_dict = dict(...
def __init__(self, cfg_dict=None, cfg_text=None, filename=None): super(Config, self).__setattr__('_cfg_dict', ConfigDict(cfg_dict))# Config类设置一个_cfg_dict属性,并将cfg_dict实例为ConfigDict类。 super(Config, self).__setattr__('_filename', filename) # Config类设置一个_file...
然后进入Runer类中的build_test_loop函数: 然后经过Registry中的build_from_cfg等函数,进入TestLoop类的__init__进行初始化。初始化的时候,会进入父类BaseLoop,在BaseLoop中,会对Dataloader进行build,关于mmcv2.0是如何构建Dataloader的,可以参考:mmcv2.0中build dataloader的流程 - Picassooo - 博客园 (cnblogs.com)...
(1)将配置文件按照“等号规则“将配置文件的内容放入一个字典_cfg_dict。 (2)用字典_cfg_dict完成Config类的初始化,使其成为Config类的一个属性。 因此,对于第一部分工作实际上属于Config类的一个公用方法。因此,可以用Python中的静态方法 @staticmethod完成。第二部分则直接init类即可。接下来我会用...
""" return build_from_cfg(cfg, ACTIVATION_LAYERS) -- utils: 一个计算flops,一个init函数 -- 剩下三个alexnet、resnet、vgg实际模型,未使用mmcv里面的东西 -- fileio handlers: pickle、yml等文件的读取类 file_client.py: 0.6版本之后新增加的函数,主要是分布式的数据读取,针对比较大的数据进行加速。
# https://github.com/open-mmlab/mmcv/blob/master/mmcv/runner/hooks/checkpoint.pyclassCheckpointHook(Hook):"""保存 checkpoint"""def__init__(self,interval=-1,by_epoch=True,save_optimizer=True,out_dir=None,max_keep_ckpts=-1,save_last=True,sync_buffer=False,file_client_args=None,**kwargs...
def__init__(self,*args,init_cfg=None): BaseModule.__init__(self,init_cfg) nn.Sequential.__init__(self,*args) What's the version of MMCV? Actually, we have addedSequentialin MMCV which hasinit_weights mmcv/mmcv/runner/base_module.py ...
cfg = Config.fromfile(args.config) cfg.merge_from_dict(args.cfg_options) # build the recognizer from a config file and checkpoint file/url model = init_recognizer(cfg, args.checkpoint, device=device) # e.g. use ('backbone', ) to return backbone feature output_layer_names = None # tes...
self.init_weights(cfg.pretrained) 调用模型 cfg = mmcv.Config.fromfile('config.py') model = builder.build_model(cfg.model) load_checkpoint(model, 'checkpoint.pth') 在上述示例中,我们首先自定义了一个名为MySegModel的分割模型,然后通过装饰器@MODELS.register_module()将其注册为MySegModelWrapper。最...