首页
学习
活动
专区
圈层
工具
发布

Detectron2学习二:目录结构、超参数配置、Trainer类

一、目录结构

参考链接:https://www.cnblogs.com/marsggbo/p/11677086.html

detectron2的主要目录结构及核心组件中的配置信息

二、参数配置

参数加载及设置流程

三、训练器类(Trainer)的继承关系

训练器类之间继承流程

逻辑图按照文件调用、继承从左到右进行的。

四、代码示例

代码语言:javascript
复制
def main(args):
    cfg = setup(args)  ##设置参数配置信息

    if args.eval_only:
        model = Trainer.build_model(cfg)
        DetectionCheckpointer(model, save_dir=cfg.OUTPUT_DIR).resume_or_load(
            cfg.MODEL.WEIGHTS, resume=args.resume
        )
        res = Trainer.test(cfg, model)
        if comm.is_main_process():
            verify_results(cfg, res)
        if cfg.TEST.AUG.ENABLED:
            res.update(Trainer.test_with_TTA(cfg, model))
        return res

    """
    If you'd like to do anything fancier than the standard training logic,
    consider writing your own training loop or subclassing the trainer.
    """
    trainer = Trainer(cfg) ##构建训练器
    trainer.resume_or_load(resume=args.resume)
    if cfg.TEST.AUG.ENABLED:
        trainer.register_hooks(
            [hooks.EvalHook(0, lambda: trainer.test_with_TTA(cfg, trainer.model))]
        )
    return trainer.train() ##开始进行训练
下一篇
举报
领券