yolov8学习笔记(一)网络结构

一、yolov8.yaml

YOLOv8详解 【网络结构+代码+实操】:

YOLOv8详解 【网络结构+代码+实操】-CSDN博客文章浏览阅读10w+次,点赞559次,收藏2.9k次。YOLOv8 算法的核心特性和改动可以归结为如下:提供了一个全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例分割模型。和 YOLOv5 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型,用于满足不同场景需求Backbone骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的C3结构换成了梯度流更丰富的C2f结构,并对不同尺度模型调整了不同的通道数。_yolov8https://blog.csdn.net/zyw2002/article/details/128732494

YOLOv8源码逐行解读(yolov8.yaml):

YOLOv8源码逐行解读(yolov8.yaml)(更新中)-CSDN博客

yolov8官方文档:

主页 -Ultralytics YOLOv8 文档

yolov8.yaml是一个用于目标检测的模型配置文件,使用了YOLOv8算法。

该文件定义了网络的结构、超参数、输入输出等信息。

nc指定了目标检测任务中要识别的物体类别数,

scales定义了不同规模的模型参数,

backbone定义了模型【主干网络结构】,

head定义了目标检测任务的【头部网络结构】,

最后通过Detect函数输出检测结果。

这个模型可以根据不同的scale参数选择不同大小的模型进行训练和预测。

1、backbone

骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想,将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数。

  # [from, repeats, module, args] 

from本层的来源,也就是输入。-1表示将上层的输出作为本层的输入。

repeats本层的重复次数。

module本层的名称。

args本层的参数。

Backbone和Neck的具体变化

a) 第一个卷积层的 kernel 从 6x6 变成了 3x3

b) 所有的 C3 模块换成 C2f,结构如下所示,可以发现多了更多的跳层连接和额外的 Split 操作

(1)特征图(计算公式)

(2)9层操作——卷积、C2f、SPPF

(2)C2f 

去掉了 Neck 模块中的 2 个卷积连接层

 

Bottleneck

YOLOv8的C2F使用了Bottleneck单元,但需要注意的是,Darknet所引入的Bottleneck不同于ResNet的Bottleneck。

此处大家记住一点即可,Bottleneck可以大大减少参数,降低计算量。

(2)SPPF

暂无

2、head

(1)10~21层

(1)22层——detect层

[15, 18, 21]代表将第15、18、21层的输出(分别是80*80*256、40*40*512、20*20*1024)作为本层的输入。

nc是数据集的类别数。

3、scales

4、网络模型解析

(1)Conv

  • 功能: 标准的卷积
  • 参数:输入通道数(c1), 输出通道数(c2), 卷积核大小(k,默认是1), 步长(s,默认是1), 填充(p,默认为None), 组(g, 默认为1), 扩张率(d,默认为1), 是否采用激活函数(act ,默认为True, 且采用SiLU为激活函数)

(1)Loss

Loss 计算过程包括 2 个部分: 正负样本分配策略和 Loss 计算。

笔记下载

https://wwm.lanzout.com/isyZD1p3puyj
密码:hoab

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/701898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java实战:SpringBoot实现参数绑定与校验注解

本文将详细介绍Spring Boot中参数绑定与校验注解的使用,以提高RESTful API的安全性和用户体验。我们将探讨Spring Boot参数绑定的基本概念,以及如何使用Spring Boot的校验注解来验证请求参数。此外,我们将通过具体的示例来展示如何在Spring B…

PyMC运行过程中的一些warning信息处理

我在一开始运行一个简单的PyMC程序,遇到来了下面3个warning WARNING (pytensor.configdefaults): g not available, if using conda: conda install m2w64-toolchain WARNING (pytensor.configdefaults): g not detected! PyTensor will be unable to compile C-imp…

#LLM入门|Prompt#1.8_聊天机器人_Chatbot

聊天机器人设计 以会话形式进行交互,接受一系列消息作为输入,并返回模型生成的消息作为输出。原本设计用于简便多轮对话,但同样适用于单轮任务。 设计思路 个性化特性:通过定制模型的训练数据和参数,使机器人拥有特…

【ES】--Elasticsearch DSL的简单查询

目录 一、前言二、DSL的简单查询1、相关字段的设置2、match查询3、match_all查询4、term/terms等值查询5、wildcard、prefix、fuzzy查询6、正则(regexp)查询7、组合(bool)查询8、query_string查询9、match_phrase查询10、match_pharse_prefix查询11、match_bool_prefix查询12、…

蛇形矩阵3

题目描述 把数1,2,3,4,5,…,N*N按照“蛇形3”放入N*N矩阵的中,输出结果。 下面是N6的蛇形3的图示 输入格式 第一行1个正整数:N,范围在[1,100]。 输出格式 N行&#x…

Git笔记——3

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、合并模式和分支策略 二、bug分支 三、强制删除分支 四、创建远程仓库 五、克隆远程仓库_HTTPS和_SSH 克隆远程仓库_HTTPS 克隆远程仓库_SSH 六、向远程仓库…

【黑马程序员】3、TypeScript常用类型_黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程

课程地址:【黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程】 https://www.bilibili.com/video/BV14Z4y1u7pi/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 3、TypeScript常用类型 3.1 类型注解 …

【统计分析数学模型】聚类分析: 系统聚类法

【统计分析数学模型】聚类分析: 系统聚类法 一、聚类分析1. 基本原理2. 距离的度量(1)变量的测量尺度(2)距离(3)R语言计算距离 三、聚类方法1. 系统聚类法2. K均值法 三、示例1. Q型聚类&#x…

四六级成绩爬取代码原创

在六级成绩刚发布时,只需要通过学生姓名和身份证号便可以查询到成绩 据此,我们可以利用selenium框架对学生的成绩进行爬取 首先我们要建立一个excel表格,里面放三列(多几列也无所谓),第一列列名取为学生姓…

阿里妈妈按关键字或网址搜索商品 API(alimama.item_search)

alimama.item_search API是用于在阿里妈妈广告平台上按关键字或网址搜索商品的。这个API可以帮助广告主在投放广告时,根据关键词找到相关的商品信息,以便更精准地定位广告受众。 要使用这个API,你需要遵循以下步骤: 注册阿里妈妈…

LeetCode 2433.找出前缀异或的原始数组

给你一个长度为 n 的 整数 数组 pref 。找出并返回满足下述条件且长度为 n 的数组 arr : pref[i] arr[0] ^ arr[1] ^ … ^ arr[i]. 注意 ^ 表示 按位异或(bitwise-xor)运算。 可以证明答案是 唯一 的。 示例 1: 输入&#xf…

亿级用户在线状态查询:Redis高效解决方案

在拥有10亿用户的场景中,使用UUID作为用户标识符来统计在线状态是一个很好的选择,因为它可以确保每个用户的唯一性。针对UUID和在线状态统计,结合Redis,您可以采用以下策略: 1. 使用Redis的哈希表(Hashes&…

Python世界之运算符

一、算术运算符 以下假设变量: a10,b20: 运算符 描述 实例 加 - 两个对象相加 a b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结…

Seata Server 服务搭建

概述 Seata 分布式事务需要 Seata Seaver 支持,Seata Server在 架构中扮演着 事务管理器的角色。Seata 服务需要往 Nacos 注册中心注册、以及读取配置文件,因此 Seata 启动前需要部署 Nacos 环境。 安装包下载 下载地址: https://download.csdn.net/dow…

【《高性能 MySQL》摘录】第 2 章 MySQL 基准测试

文章目录 2.1 为什么需要基准测试2.2 基准测试的策略2.2.1 测试何种指标 2.3 基准测试方法2.3.1 设计和规划基准测试2.3.2 基准测试应该运行多长时间2.3.3 获取系统性能和状态2.3.4 获得准确的测试结果2.3.5 运行基准测试并分析结果2.3.6 绘图的重要性 2.4 基准测试工具…

SQL多个字段拼接组合成新字段的常用方法

在sql语句中,有时候我们可能需要将两个字段的值放在一起显示,因为他们通常是一起出现的,比如客户名称和客户编号,那我们就要将这两个字段拼接成一个字段。下面是几种常见的方法: 一、CONCAT()函数 SELECT CONCAT(col…

超参数优化

超参数优化 超参数是用于控制学习过程的不同参数值,对机器学习模型的性能有显著影响。例如,随机森林算法中的估计器数量、最大深度和分裂标准等。超参数优化是找到超参数值的正确组合,以便在合理的时间内实现数据最大性能的过程。这个过程在…

MATLAB环境下基于NLEO的算法的脑电EEG信号自发活动瞬态检测

自发脑电信号是一种非平稳性很强的随机信号。在传统的脑电信号处理中,较公认的处理方法大多是建立在假设脑电图是准平稳信号的基础上,即认为它可以分成若干段,每一段的过程基本平稳,但段上叠加着瞬态。瞬态信号是有别于背景节率&a…

Linux环境非root用户配置SSH免密登录,并解决登录仍提示输入密码

Linux环境非root用户配置SSH免密登录,并解决登录仍提示输入密码 ssh免密登录的简单理解 以A和B进行举例:A免密登录B (即在A服务器输入命令:ssh 非root用户名B的IP地址)可以直接免密码直接登录 A生成私钥和公钥&#…

爬虫工作量由小到大的思维转变---<第四十八章 Scrapy 的请求和follow问题>

前言: 有时,在爬取网页的时候,页面可能只能提取到对应的url,但是具体需要提取的信息需要到下一页(url)里面; 这时候,不要在中间件去requests请求去返回response; 用这个方法.... 正文: 在Scrapy框架内,如果你想从一个页面提取URL,然后跳转到这个URL以…