028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

什么是Config和Trainer

这篇文章主要讲解了“什么是Config和Trainer”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么是Config和Trainer”吧!

我们提供的服务有:成都做网站、网站制作、成都外贸网站建设、微信公众号开发、网站优化、网站认证、长宁ssl等。为近千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的长宁网站制作公司

代码结构概览

核心部分

Tutorial部分

代码逻辑分析

超参数配置

进入tools/train_net.pymain函数,第一行cfg = setup(args)是配置参数。Detectron2中的参数配置使用了yacs这个库,这个库能够很好地重用和拼接超参数文件配置。

我们先看一下detrctron2/config/的文件结构:

了解配置函数的方法后我们再回到tools/train_net.py,我们一行一行的来理解。

from detectron2.config import get_cfg
from detectron2.engine import DefaultTrainer, default_argument_parser, default_setup, hooks, launch
...

def setup(args):
    """
    Create configs and perform basic setups.
    """
    cfg = get_cfg() 
    cfg.merge_from_file(args.config_file) 
    cfg.merge_from_list(args.opts)
    cfg.freeze()
    default_setup(cfg, args)
    return cfg
opts = ["SYSTEM.NUM_GPUS", 8, "TRAIN.SCALES", "(1, 2, 3, 4)"]
cfg.merge_from_list(opts)
print("cfg\n",cfg)

那么最后会有

cfg
... (一些默认值超参数)
SYSTEM:
	NUM_GPUS: 8
TRAIN:
	SCALES: (1,2,3,4)

Trainer

既然上面提到了DefaultTrainer,那么我们就从这个类入手了解一下detectron2.engine,其代码结构如下:

好了,我们继续回到tools/train_net.py的main函数,代码如下所示。

def main(args):
    cfg = setup(args)

    if args.eval_only:
		...
    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()

可以看到下面定义了一个Trainer,它继承自detectron2.engine.default.DefaultTrainer,这个父类会自动解析cfg。之后只需要调用trainer.train()就可以开始训练了。

感谢各位的阅读,以上就是“什么是Config和Trainer”的内容了,经过本文的学习后,相信大家对什么是Config和Trainer这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网页名称:什么是Config和Trainer
标题路径:http://www.tsicrk.com/article/gsghdg.html

其他资讯

让你的专属顾问为你服务

1.7036s