MMCV:MMDetction所依赖的调参基础库

本文介绍了MMCV中的Runner机制,它是MMDetection训练过程的核心。Runner简化了算法研究的代码编写,集成了图像处理、可视化、训练统计等功能,并支持多种CNN网络结构。基于MMCV,已发展出多个计算机视觉工具箱,如MMDetection、MMSegmentation等。Runner通过配置信息构建训练和测试工作流,将训练流程标准化。文中通过一个简单例子展示了如何配置和使用Runner进行模型训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原创:赵明明

做目标检测的同学应该已经接触过或者正要接触MMDetection,当你接触到MMDeteciton的时候,你会发现,它的代码有点奇怪:它不写train函数,不写eval函数,反而配置了一个runner,把训练过程配置到runner中,运行runner,就是运行train/eval函数.如下:
图1 配置runner完成训练过程
图1 配置runner完成训练过程

上图第84行,就是对runner的运行。在运行之前的第62行,第78行,分别将模型model,优化器optimizer,日志logger,学习率调整策略配置入runner内。配置好后,运行runner就可以i实现模型的训练了。

为什么要使用runner?

我认为最大的特点就是:方便了算法研究,同学们可以少花一点时间在写代码上,把更多的精力花在模型的设计上。runner里面集成了图像和视频处理,图像和标注结果的可视化,对训练过程记时统计,以及高质量的常见的GPU算子等,也集成了多种CNN网络机构,基本上常用的网络结构都已经集成在这个模型里了。

由于mmcv的便利性,基于mmcv的开发已经支持了CV各个领域的开源项目:

  • 有MMClassification,图像分类工具箱;
  • MMDetection图像检测工具箱;
  • MMDetection3D新一代通用3D目标检测平台,
  • 以及MMSegmentation图像分割工具箱。
  • 除了经典的视觉任务,还实现了视频理解工具箱MMAction2,
  • 目标感知平台MMTracking,
  • 姿态估计工具箱MMPose,
  • 文字检测工具箱MMOCR,
  • 图像视频编辑工具箱MMEditing等一些常见的应用场景
  • 最后,也有部署方面的模型压缩工具箱MMRazor,模型部署框架MMDeploy.

为何mmcv可以支持开发从模型设计,到模型应用,再到模型部署这样全方位的工具箱?

原因有很多,其中配置型的runner功不可没。

下面咱们就了解下runner的思路

runner通过配置信息构建了训练工作流,测试工作流。比如设置 workflow=[(‘train’,200),(‘val’,1)],表示循环的训练200个epoch,然后验证1个epoch.

构建逻辑如下:

while curr_epoch < max_epochs:
    # 遍历用户设置的工作流,例如 workflow = [('train', 200),('val', 1)]
    for i, flow in enumerate(workflow):
        # mode 是工作流函数,例如 train, epochs 是
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值