YOLOv10s训练代码解析2:模型和训练器的加载

本专栏会手把手带你从源码了解YOLOv10(后续会陆续介绍YOLOv8、RTDETR等模型),尽可能地完整介绍整个算法,这个专栏会持续创作与更新,大家如果想要本文PDF和思维导图,后台私信我即可(创作不易,不喜勿喷),大家如果发现任何错误和需要修改的地方都可以私信我,我会统一修改。

新建train.py,如下就是一个简易的训练代码,训练配置文件为coco128.yaml,批次为16,图像尺寸为640

第四行模型初始化过后,Debug第六行模型训练的主函数到ultralytics/engine/model.py,这部分代码是检查环境、初始化训练器等

然后调用model类的_smart_load函数(ultralytics/engine/model.py):加载对应模型的训练器trainer等

之后对应YOLOv10模型的相应类(ultralytics/models/yolov10/model.py)

YOLOv10DetectionTrainer继承自DetectionTrainer (ultralytics/models/yolo/train.py),而DetectionTrainer又继承自BaseTrainer (ultralytics/engine/trainer.py), 初始化相应参数;trainer.py第90行的__init__函数,加载配置、数据集等信息,第138行检查数据集的配置yaml文件信息;继续初始化学习率、优化器等信息,第144行的self.trainset和self.testset为数据集训练集和测试集的路径

在初始化好模型训练器trainer后(第二幅图ultralytics/engine/model.py类的第638行后),继续加载模型

根据之前task对应的Model加载对应的YOLOv10DetectionModel;YOLOv10DetectionModel继承自DetectionModel(ultralytics/nn/task.py第644行),在继续调用ultralytics/nn/task.py的第285行__init__函数,初始化模型信息

这部分关于模型构建的整体流程如下图所示,需要原图和思维导图的朋友关注我私信获取。

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值