文章目录
之前的几篇文章已经分别理解了:
- 如何定义自己的数据集
- 如何训练自己的网络
- dataset和model是怎么构造的
本文就再详细的看一下,在构造好了dataset和model是如何训练的。从tools/train.py中
# mmdetection/tools/train.py
train_detector(
model,
datasets,
cfg,
distributed=distributed,
validate=args.validate,
timestamp=timestamp,
meta=meta)
可以进入在mmdet/apis/train.py中
# mmdetection/mmdet/apis/train.py
runner = Runner(
model,
batch_processor,
optimizer,
cfg.work_dir,
logger=logger,
meta=meta)
...
runner.run(data_loaders, cfg.workflow, cfg.total_epochs)
再查看runner,可以看到,
# mmcv/runner/runner.py
class Runner:
def train(self, data_loader, **

本文详细探讨了在mmdetection中,如何在构造好dataset和model后进行训练。从tools/train.py开始,深入到mmdet/apis/train.py中的runner,分析了batch_processor和model的前向计算过程,揭示了loss计算是在前向传播中完成的。在训练模式下,return_loss=True会返回losses,而预测模式则返回bbox_results。
最低0.47元/天 解锁文章
1468

被折叠的 条评论
为什么被折叠?



