YOLOv5 训练train参数解读

        train.py 运行参数共计34个,以及额外4个日志输出控制参数。仅解释各参数的作用,具体参数的类型、默认值、输入后的运作模式在其他部分介绍。

参数

含义

深入解释

weights

模型的权重

.pt文件,存储了模型的所有参数

cfg

config,模型配置文件

.yaml文件,存储模型各层的形状和类别

data

数据文件

.yaml文件,存储训练、验证、测试集地址或索引

hyp

hyperparameter,超参数文件

.yaml文件,存储超参数

eopchs

时代,训练轮数

训练的轮数,整个数据集将被迭代的次数,一轮即train.py文件在所有训练集上完成一次遍历

batch-size

批大小,批量规模

为提升效率进行批处理,单次训练会将多个图片以某种方式组合到一起,再输入到模型进行训练,组合的图片数量即批大小

imgsz

输入模型的图片统一大小

一组训练集的图片可能有不同尺寸,而模型的输入接收端口是固定的。因此正式训练前,图片需要先处理成统一的大小,一般处理成正方形,边长为imgsz

rect

rectangle矩形

进行矩形训练????

resume

中断后继续

恢复最近保存的模型并开始训练

nosave

不保存结果

仅会保存最终的checkpoint

noval

不验证

正常每轮训练结束后都会验证,设为true则只进行最后一次验证

noautoanchor

不自动确定锚框

取消计算label锚框的聚类中心。模型需要label矩形长宽比的聚类结果,这种聚类后的锚框能够加速模型收敛。设为false则不会计算,可能会降低模型收敛速度。如果已经提前计算好锚框聚类中心,可写入到模型配置.yaml文件中,不需要自动计算功能。

noplots

不做图

模型会输出一些图片比如lossepoch的变化(即收敛情况),设为false则不输出图片。

evolve

进化,超参更新代数

更新多少代超参数。怎么更新,超参不是存在yaml文件中吗?

bucket

桶,云的容器,是否上传到云

Gustil bucketgustil是一个谷歌云提供的python包,功能是实现数据云上传存储处理等操作;bucket指数据的容器,或理解成cloud上的一个文件夹。

cache

缓存,选择缓存硬件

可以选择在ram或者在disk上进行缓存,默认直接在ram

image-weights

是否采用图像权重进行选择训练

设为True时,计算图像采集的权重,若图像权重越大,那么该图像被采样的概率也越大

device

运行代码的硬件

可以指定cpu或者在某一编号的gpu上运行代码,gpu跑得快

multi-scale

是否多尺度训练图片

设为True时,将图片放缩成多个尺寸,能够得到不同尺度的特征信息,但速度慢。

single-cls

single class,单类别训练

设为True时,把多类别标签都视为同一种标签进行训练。

optimizer

优化器

默认SGD,有3种可选择'SGD', 'Adam', 'AdamW'

sync-bn

synchronized batch normalization,同步批处理

使用多GPU进行分布式训练时,不同GPU的训练batch需要同步。设为True则开启。

workers

进程数量

最大的数据加载器的进程数量(在DDP模式下每个RANK

project

运行项目

运行结果保存到的文件夹总地址,如runs/train/runs/detect

name

名称

即每次运行结果所保存到的文件夹名称,如设置为exp,不同次项目运行结果将保存到runs/train/exp1exp2…,后缀会增加

exist-ok

存在正常

现有项目正常,不用对exp的数字后缀递增。即设为True,项目运行结果将保存到现有文件夹中,而不是新建一个exp文件夹。

quad

是否使用四元数据加载器

一个实验性功能参数,允许小尺寸图片训练时获得高尺寸训练的优势

cos-lr

cosine learning rate scheduler,余弦学习率调度器

设为True时开启余弦学习率调度器

label-smoothing

标签平滑

计算的loss有所变化,作用是防止过拟合,但数值过大会导致欠拟合

patience

耐心值

训练提前停止的阈值轮数,如果经过patience轮训练,效果一直没有提升,就提前停止训练

freeze

冻结

冻结网络的指定层,冻结的层的权重在训练过程中不会改变

save-period

保存周期

每一定轮数保存一次checkpoint

seed

随机种子

固定训练的随机性

local_rank

本地进程号

GPU模型自动修改,不用手动修改。

logger日志参数4个,不影响模型的运行效果。

参数

含义

深入解释

entity

实体

upload_dataset

上传数据集

bbox_interval

定界框间隔

artifact_alias

工件别名

参考文章

https://blog.csdn.net/qq_36756866/article/details/109111065

 https://blog.csdn.net/IT_charge/article/details/119208680

 

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLOv8的训练代码解读如下: train.py是YOLOv8项目中的一个主要文件,它包含了训练模型所需的核心功能和逻辑。在train.py中,主要涉及的函数是train()函数。 train()函数是整个训练过程的入口函数,它接收一些参数,如模型、数据集、优化器等,并执行训练循环。在训练循环中,首先加载训练数据集,并通过数据增强方法对图像进行增强,以提高模型的泛化能力和鲁棒性。然后,将增强后的图像输入到模型中进行前向传播,得到预测结果。接着,计算预测结果与真实标签之间的损失,使用损失函数计算损失值,并根据损失值来更新模型的参数。这个过程不断迭代,直到达到预设的训练轮数或达到停止训练的条件。 train.py还涉及了其他一些模块和文件,如checkpoints、data、dataset、loss、utils等。checkpoints目录存储了训练过程中保存的模型权重文件,这些文件可以用于恢复训练或进行推理。data目录包含了存储类别信息和训练数据列表的文件,classes.txt文件存储了物体类别的名称,train.txt文件包含了训练数据集的文件路径列表。dataset模块提供了数据加载器,用于加载训练数据并进行预处理。loss模块包含了损失函数的实现,用于计算模型预测结果与真实标签之间的差异。utils模块包含了一些辅助函数和工具类,用于在训练过程中进行日志记录、模型保存等操作。 需要注意的是,由于train.py函数涉及的篇幅较大,本博客只提供了部分核心内容的讲解。如果你想详细了解train.py的完整代码,你可以查看网盘地址中的代码文件(提取码:wbqu)。 请注意,我在回答中使用了引用和引用中的相关内容来支持我的回答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值