mmdetection源码笔记(四):训练模型之train_detector()的解读

本文详细解读mmdetection中train_detector()的功能,探讨该函数如何启动模型训练,包括分布式与非分布式训练的区别,并重点解析runner类在训练过程中的作用,它负责协调训练的各个环节,如加载数据、初始化权重、保存检查点等。
摘要由CSDN通过智能技术生成

引言

之前在写mmdetection源码的解读过程时,觉得train_detector()这部分很重要,对于理解整个的训练过程应该时起着非常大的理解作用。
然后最近研究工作一直在看和修改mmdetection的其他模块的代码这一块。感觉train_detector()这块内容其实也不是特别重要来着,可能就是一个加强理解的过程。这次还是花了点时间,大致的看了一下,顺便加上自己的一些理解,解释了一下整个过程,如果有错的话,希望各路大佬指出,互相学习哈。

train_detector()

下面的代码出现在tools/train.py中,也是main函数的结尾,也就是说,我们训练的时候,到这就是真正的开始训练了。

 train_detector(
        model,
        datasets,
        cfg,
        distributed=distributed,
        validate=args.validate,
        logger=logger)

那到底怎么训练的呢?
下面代码是train_detector()函数的定义,在mmdet/api/train.py文件中

def train_detector(model,
                   dataset,
                   cfg,
                   distributed=False,
                   validate=False,
                   logger=None):
    if logger is None:
        logger = get_root_logger(cfg.log_level)
    # start training
    if distributed:
        _dist_train(model, dataset, cfg, validate=validate
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值