前言:
上两篇:yolov5代码解读-dataset、yolov5代码解读-网络架构
yolov5的数据处理模块和网络架构已经写完了,做好了这些基础工作,就可以来训练了。
代码已上传到github,数据集和权重文件已上传到百度网盘(链接在github里),如需下载请移步:https://github.com/scc-max/yolov5-scc
参数解读
超参数hyp文件
在训练之前,先看一下有哪些超参数。在yolov5工程里面有一个 data文件夹,里面有一个hyp.scratch.yaml文件,可以用写字板或者记事本打开。
上面这些参数默认就好,没什么改动的必要。
lr:学习率就不用说了,在训练过程中会依次下降,初试学习率在第一行内容中。余弦退火就是为了动态降低学习率。
momentum: 动量,一般为0.95左右。
weight_decay:权重衰减,防止权重更新幅度过大,过拟合。
warmup:热身,让模型先热热身,熟悉熟悉数据,学习率要小,相当于只是去看看,还没正式训练呢,学习率太高说不定就学跑偏了。
下面是损失和图像增强的一些参数,大致也都默认就好。
命令行参数
这些是train.py里面的参数,前几个不用说,看一下就知道什么意思。
rect是指要不要做矩形训练,例如448×448给修改成448×w这样一个尺寸,默认是不做。
resume是指是否继续上次的训练,这是一个日志文件,在训练后会有一个last.pt,是保存的权重文件。store_true,就是没有默认的情况下就是False。因为我只有矿山一个类别,所以我的single-cls就是store false,然后默认为True了。如果是多类别的,这里要写store_true。
最后一个workers,windows系统一定要指定为0,指定其他的会百分百报错。windows和pytorch没有很好地兼容。
训练流程
训练前
日志文件
首先是定义日志文件的地址,然后加载了一些超参数例如epochs。
pt文件保存了best和last两种&

本文详细解读了yolov5的训练流程,包括超参数设置、命令行参数解析、训练前的准备工作,以及关键组件如模型加载、优化器选择和训练步骤。重点介绍了损失函数、数据增强、多卡训练和模型微调等内容。
最低0.47元/天 解锁文章
19万+

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



