【YOLO】YOLOv8怎么调参及数据增强策略(持续更新)

【YOLO】YOLOv8怎么调参及数据增强策略(持续更新)
# use Adam lr0: 0.001 # initial learning rate (i.e. SGD=1E-2, Adam=1E-3) lrf: 0.01 # final learning rate (lr0 * lrf) momentum: 0.937 # SGD momentum/Adam beta1 weight_decay: 0.0005 # optimizer weight decay 5e-4 warmup_epochs: 3.0 # warmup epochs (fractions ok) warmup_momentum: 0.8 # warmup initial momentum warmup_bias_lr: 0.1 # warmup initial bias lr box: 7.5 # box loss gain cls: 0.5 # cls loss gain (scale with pixels) dfl: 1.5 # dfl loss gain fl_gamma: 0.0 # focal loss gamma (efficientDet default gamma=1.5) label_smoothing: 0.0 # label smoothing (fraction) nbs: 64 # nominal batch size hsv_h: 0.015 # image HSV-Hue augmentation (fraction) hsv_s: 0.7 # image HSV-Saturation augmentation (fraction) hsv_v: 0.4 # image HSV-Value augmentation (fraction) degrees: 0.0 # image rotation (+/- deg) translate: 0.1 # image translation (+/- fraction) scale: 0.5 # image scale (+/- gain) shear: 0.0 # image shear (+/- deg) perspective: 0.0 # image perspective (+/- fraction), range 0-0.001 flipud: 0.0 # image flip up-down (probability) fliplr: 0.5 # image flip left-right (probability) mosaic: 1.0 # image mosaic (probability) mixup: 0.0 # image mixup (probability) copy_paste: 0.0 # segment copy-paste (probability)

解释配置参数含义


这段配置主要是用于深度学习模型训练过程中的参数设置,特别是在使用Adam优化器时的一些关键参数配置,以及数据增强(Data Augmentation)的策略。下面是对这些参数的具体解释:

优化器相关参数

  • lr0: 初始学习率(Initial Learning Rate),设置为0.001。这是训练开始时的学习率,对于Adam优化器来说,这个值通常比SGD优化器的初始学习率要小。
  • lrf: 最终学习率(Final Learning Rate),设置为0.01。这是通过lr0 * lrf计算得出的,用于学习率衰减的最终目标值。
  • momentum: 对于SGD来说,这是动量(Momentum)参数;对于Adam来说,它相当于beta1,设置为0.937。Adam中的beta1用于计算梯度的一阶矩估计。
  • weight_decay: 优化器的权重衰减(Weight Decay),设置为0.0005,用于防止过拟合。

学习率预热(Warmup)参数

  • warmup_epochs: 预热周期(Warmup Epochs),设置为3.0。在训练初期,学习率从一个较小的值逐渐增加到初始学习率,有助于模型稳定训练。
  • warmup_momentum: 预热初始动量(Warmup Initial Momentum),设置为0.8。与预热学习率类似,动量也可以从较小的值开始预热。
  • warmup_bias_lr: 预热初始偏置学习率(Warmup Initial Bias Learning Rate),设置为0.1。这个参数可能特定于某些模型或框架,用于控制某些参数(如偏置项)的学习率。

损失函数相关参数

  • box: 边界框(Box)损失增益(Gain),设置为7.5。这用于调整边界框损失的权重。
  • cls: 分类(Classification)损失增益,设置为0.5。这用于调整分类损失的权重,并且会根据像素数进行缩放。
  • dfl: Distance-IoU Loss(DFL)增益,设置为1.5。DFL是一种用于目标检测的损失函数,用于更精确地回归边界框。
  • fl_gamma: Focal Loss的γ参数,设置为0.0。Focal Loss用于解决分类问题中的类别不平衡问题,但这里设置为0.0表示不使用Focal Loss的γ调整。
  • label_smoothing: 标签平滑(Label Smoothing),设置为0.0。标签平滑是一种正则化技术,通过软化真实标签来减少模型对标签噪声的敏感性。

数据增强参数

  • hsv_h, hsv_s, hsv_v: 分别控制HSV颜色空间中Hue(色调)、Saturation(饱和度)、Value(亮度)的增强程度。
参考百度百科:
  • degrees, translate, scale, shear, perspective: 分别控制图像的旋转、平移、缩放、剪切和透视变换的程度。
  • flipud, fliplr: 控制图像上下翻转和左右翻转的概率。
  • mosaic, mixup, copy_paste: 分别控制图像拼接(Mosaic)、图像混合(Mixup)和段落复制粘贴(Copy-Paste)的概率。这些技术用于增加数据的多样性和复杂性,有助于提高模型的泛化能力。

Read more

使用 VS Code 连接 MySQL 数据库

使用 VS Code 连接 MySQL 数据库

文章目录 * 前言 * VS Code下载安装 * 如何在VS Code上连接MySQL数据库 * 1、打开扩展 * 2、安装MySQL插件 * 3、连接 * 导入和导出表结构和数据 前言 提示:这里可以添加本文要记录的大概内容: 听说VS Code不要钱,功能还和 Navicat 差不多,还能在上面打游戏 但是没安装插件是不行的 发现一个非常牛的博主 还有一个非常牛的大佬 提示:以下是本篇文章正文内容,下面案例可供参考 VS Code下载安装 VS Code下载安装 如何在VS Code上连接MySQL数据库 本篇分享是在已有VS Code这个软件的基础上,数据库举的例子是MySQL 1、打开扩展 2、安装MySQL插件 在搜索框搜索 MySQL和 MySQL Syntax,下载这三个插件 点击下面的插件,选择【install】安装

By
RustFS 保姆级上手指南:国产开源高性能对象存储

RustFS 保姆级上手指南:国产开源高性能对象存储

最近在给项目选型对象存储的时候,发现一个挺有意思的现象:一边是MinIO社区版功能逐渐“躺平”,另一边是大家对存储性能和安全性的要求越来越高。就在这时,一个叫 RustFS 的国产开源项目闯入了我的视野。 折腾了一阵子后,我感觉这玩意儿确实有点东西。它用Rust语言写,天生就带着高性能和内存安全的基因,性能号称比MinIO快一大截,而且用的是对商业友好的Apache 2.0协议。今天,我就手把手带大家从零开始,搭建一个属于自己的RustFS服务,体验一下国产存储的威力。 一、 RustFS是什么?为什么值得你关注? 简单说,RustFS是一个 分布式对象存储系统 。你可以把它理解成一个你自己搭建的、功能跟阿里云OSS、亚马逊S3几乎一样的“私有云盘”。 但它有几个非常突出的亮点,让我觉得必须试试: * 性能猛兽 :基于Rust语言开发,没有GC(垃圾回收)带来的性能抖动,官方数据显示在4K随机读场景下,性能比MinIO高出40%以上,内存占用还不到100MB,简直是“小钢炮”。 * 100%S3兼容 :这意味着你现有的所有使用S3 API的代码、工具(比如AWS

By