YOLOv8魔改核心-模型yaml文件解析与网络结构打印

前言

本篇文章主要用于记录学习YOLOv8中网络模型yaml文件,我们一般只知道如何去训练模型,和配置yaml文件,但是对于yaml文件是如何输入到模型里,模型如何将yaml文件解析出来的确是不知道的,下面我们从yaml文件来讲解,并打印出网络结构参数。

往期回顾

1、YOLOv8入门-训练TT100K数据集实践

目录

  • 一、yaml文件的定义
  • 二、模型结构图
  • 三、模型结构解析
  • 四、模型结构打印
  • 五、查看详细网络结构

一、yaml文件的定义

文件位置:./ultralytics/cfg/models/v8/yolov8.yaml,文件详解:

# Ultralytics YOLO 🚀, AGPL-3.0 license
# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect# Parameters
nc: 80  # 类别数目,nc代表"number of classes",即模型用于检测的对象类别总数。 80表示该模型配置用于检测80种不同的对象。由于默认使用COCO数据集,这里nc=80;
scales: # 模型复合缩放常数,用于定义模型的不同尺寸和复杂度。例如 'model=yolov8n.yaml' 将调用带有 'n' 缩放的 yolov8.yaml# [depth, width, max_channels]n: [0.33, 0.25, 1024]  # YOLOv8n概览:225层, 3157200参数, 3157184梯度, 8.9 GFLOPss: [0.33, 0.50, 1024]  # YOLOv8s概览:225层, 11166560参数, 11166544梯度, 28.8 GFLOPsm: [0.67, 0.75, 768]   # YOLOv8m概览:295层, 25902640参数, 25902624梯度, 79.3 GFLOPsl: [1.00, 1.00, 512]   # YOLOv8l概览:365层, 43691520参数, 43691504梯度, 165.7 GFLOPsx: [1.00, 1.25, 512]   # YOLOv8x概览:365层, 68229648参数, 68229632梯度, 258.5 GFLOPs# YOLOv8.0n backbone 骨干层
backbone:# [from, repeats, module, args]- [-1, 1, Conv, [64, 3, 2]]  # 0-P1/2 第0层,-1代表将上层的输出作为本层的输入。第0层的输入是640*640*3的图像。Conv代表卷积层,相应的参数:64代表输出通道数,3代表卷积核大小k,2代表stride步长。卷积后输出的特征图尺寸为320*320*64,长宽为初始图片的1/2- [-1, 1, Conv, [128, 3, 2]]  # 1-P2/4 第1层,本层和上一层是一样的操作(128代表输出通道数,3代表卷积核大小k,2代表stride步长)。卷积后输出的特征图尺寸为160*160*128,长宽为初始图片的1/4- [-1, 3, C2f, [128, True]] # 第2层,本层是C2f模块,3代表本层重复3次。128代表输出通道数,True表示Bottleneck有shortcut。输出的特征图尺寸为160*160*128。- [-1, 1, Conv, [256, 3, 2]]  # 3-P3/8 第3层,进行卷积操作(256代表输出通道数,3代表卷积核大小k,2代表stride步长),输出特征图尺寸为80*80*256(卷积的参数都没变,所以都是长宽变成原来的1/2,和之前一样),特征图的长宽已经变成输入图像的1/8。- [-1, 6, C2f, [256, True]] # 第4层,本层是C2f模块,可以参考第2层的讲解。6代表本层重复6次。256代表输出通道数,True表示Bottleneck有shortcut。经过这层之后,特征图尺寸依旧是80*80*256。- [-1, 1, Conv, [512, 3, 2]]  # 5-P4/16 第5层,进行卷积操作(512代表输出通道数,3代表卷积核大小k,2代表stride步长),输出特征图尺寸为40*40*512(卷积的参数都没变,所以都是长宽变成原来的1/2,和之前一样),特征图的长宽已经变成输入图像的1/16。- [-1, 6, C2f, [512, True]] # 第6层,本层是C2f模块,可以参考第2层的讲解。6代表本层重复6次。512代表输出通道数,True表示Bottleneck有shortcut。经过这层之后,特征图尺寸依旧是40*40*512。- [-1, 1, Conv, [1024, 3, 2]]  # 7-P5/32 第7层,进行卷积操作(1024代表输出通道数,3代表卷积核大小k,2代表stride步长),输出特征图尺寸为20*20*1024(卷积的参数都没变,所以都是长宽变成原来的1/2,和之前一样),特征图的长宽已经变成输入图像的1/32。- [-1, 3, C2f, [1024, True]] #第8层,本层是C2f模块,可以参考第2层的讲解。3代表本层重复3次。1024代表输出通道数,True表示Bottleneck有shortcut。经过这层之后,特征图尺寸依旧是20*20*1024。- [-1, 1, SPPF, [1024, 5]]  # 9 第9层,本层是快速空间金字塔池化层(SPPF)。1024代表输出通道数,5代表池化核大小k。结合模块结构图和代码可以看出,最后concat得到的特征图尺寸是20*20*(512*4),经过一次Conv得到20*20*1024。# YOLOv8.0n head 头部层
head:- [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 第10层,本层是上采样层。-1代表将上层的输出作为本层的输入。None代表上采样的size=None(输出尺寸)不指定。2代表scale_factor=2,表示输出的尺寸是输入尺寸的2倍。mode=nearest代表使用的上采样算法为最近邻插值算法。经过这层之后,特征图的长和宽变成原来的两倍,通道数不变,所以最终尺寸为40*40*1024。- [[-1, 6], 1, Concat, [1]]  # cat backbone P4 第11层,本层是concat层,[-1, 6]代表将上层和第6层的输出作为本层的输入。[1]代表concat拼接的维度是1。从上面的分析可知,上层的输出尺寸是40*40*1024,第6层的输出是40*40*512,最终本层的输出尺寸为40*40*1536。- [-1, 3, C2f, [512]]  # 12 第12层,本层是C2f模块,可以参考第2层的讲解。3代表本层重复3次。512代表输出通道数。与Backbone中C2f不同的是,此处的C2f的bottleneck模块的shortcut=False。- [-1, 1, nn.Upsample, [None, 2, 'nearest']] # 第13层,本层也是上采样层(参考第10层)。经过这层之后,特征图的长和宽变成原来的两倍,通道数不变,所以最终尺寸为80*80*512。- [[-1, 4], 1, Concat, [1]]  # cat backbone P3 第14层,本层是concat层,[-1, 4]代表将上层和第4层的输出作为本层的输入。[1]代表concat拼接的维度是1。从上面的分析可知,上层的输出尺寸是80*80*512,第6层的输出是80*80*256,最终本层的输出尺寸为80*80*768。- [-1, 3, C2f, [256]]  # 15 (P3/8-small) 第15层,本层是C2f模块,可以参考第2层的讲解。3代表本层重复3次。256代表输出通道数。经过这层之后,特征图尺寸变为80*80*256,特征图的长宽已经变成输入图像的1/8。- [-1, 1, Conv, [256, 3, 2]] # 第16层,进行卷积操作(256代表输出通道数,3代表卷积核大小k,2代表stride步长),输出特征图尺寸为40*40*256(卷积的参数都没变,所以都是长宽变成原来的1/2,和之前一样)。- [[-1, 12], 1, Concat, [1]]  # cat head P4 第17层,本层是concat层,[-1, 12]代表将上层和第12层的输出作为本层的输入。[1]代表concat拼接的维度是1。从上面的分析可知,上层的输出尺寸是40*40*256,第12层的输出是40*40*512,最终本层的输出尺寸为40*40*768。- [-1, 3, C2f, [512]]  # 18 (P4/16-medium) 第18层,本层是C2f模块,可以参考第2层的讲解。3代表本层重复3次。512代表输出通道数。经过这层之后,特征图尺寸变为40*40*512,特征图的长宽已经变成输入图像的1/16。- [-1, 1, Conv, [512, 3, 2]] # 第19层,进行卷积操作(512代表输出通道数,3代表卷积核大小k,2代表stride步长),输出特征图尺寸为20*20*512(卷积的参数都没变,所以都是长宽变成原来的1/2,和之前一样)。- [[-1, 9], 1, Concat, [1]]  # cat head P5 第20层,本层是concat层,[-1, 9]代表将上层和第9层的输出作为本层的输入。[1]代表concat拼接的维度是1。从上面的分析可知,上层的输出尺寸是20*20*512,第9层的输出是20*20*1024,最终本层的输出尺寸为20*20*1536。- [-1, 3, C2f, [1024]]  # 21 (P5/32-large) 第21层,本层是C2f模块,可以参考第2层的讲解。3代表本层重复3次。1024代表输出通道数。经过这层之后,特征图尺寸变为20*20*1024,特征图的长宽已经变成输入图像的1/32。- [[15, 18, 21], 1, Detect, [nc]]  # Detect(P3, P4, P5) 第20层,本层是Detect层,[15, 18, 21]代表将第15、18、21层的输出(分别是80*80*256、40*40*512、20*20*1024)作为本层的输入。nc是数据集的类别数。

1、参数配置

在这里插入图片描述

nc:80 # 数据集的类别数,默认coco是80类别(yolov8的权重也是基于此数据集训练出来的),nc此处其实不需要修改,模型会自动根据我们数据集的yaml文件获取此处的数量

scales:# 包含了不同模型配置的尺度参数,调整模型的规模,通过尺度参数可以实现不同复杂度的模型设计。YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l、YOLOv8x五种模型的区别在于depth、width、max_channels这三个参数的不同。

#model compound scaling constants, i.e. ‘model=yolov8n.yaml’ will call yolov8.yaml with scale ‘n’
#此处的含义大概就是如果我们在训练的指令时候使用model=yolov8.yaml 则对应的是v8n,如果使用model=yolov8s.yaml则对应的是v8s

[depth, width, max_channels]
depth:深度,控制子模块的数量
width: 宽度,控制卷积核的数量
max_channels: 最大通道数

2、backbone模块

在这里插入图片描述
[from, repeats, module, args]
from: 有三种可能的值分别是 -1、具体的数值、list存放数值。
(1)-1代表此层的输入就是上一层的输出
(2)如果是具体的某个数字4则代表本层的输入来自于模型的第四层
(3)有的层是list存在两个值可能是多个值,则代表对应两个值的输出为本层的输入

repeats: 这个参数是为了c2f设置的,其他模块用不到,代表着C2f中Bottleneck重复的次数,当我们的模型用到的是1时候,repeats=3那么则代表C2f当中的Bottleneck串行3个。

module:模块类名,通过这个类名在common.py中寻找相应的类,进行模块化的搭建网络。

args:以conv[64, 3, 2]为例,分别对应[channel, kernel, stride] 。channel是输出feature map的通道数,kernel是卷积核的个数, stride是卷积核移动步幅。此处代表输入到对应模块的参数,此处和parse_model函数中的定义方法有关,对于C2f来说传入的参数->第一个参数是上一个模型的输出通道数,第二个参数就是args的第一个参数,然后以此类推。

在这里插入图片描述

以C2f[128,true]为例,128是输出feature map的通道数,True代表Bottleneck模块中的shortcut=True,m没有写代表False。
以SPPF[1024,5]为例,1024是输出feature map的通道数,5是SPPF模块中池化核的尺寸。
以nn.upsample为例,None表示不指定输出尺寸,2表示输出尺寸为输入尺寸的2倍,“nearest”表示上采样差值方式为最近邻差值。

3、head模块

在这里插入图片描述

head用于将主干网络(backbone)的特征图(feature maps)转化为目标检测的输出结果,head部分定义了模型的检测头,即用于最终目标检测的网络结构。头部网络的主要作用是进行目标分类和定位。它根据颈部网络提供的融合特征图,对每个特征点进行分类(目标类别预测)和定位(边界框预测)。

关键组成:
nn.Upsample:表示上采样层,用于放大特征图。
Concat:表示连接层,用于合并来自不同层的特征。
C2f:层再次出现,可能用于进一步处理合并后的特征。
Detect:层是最终的检测层,负责输出检测结果。

二、模型结构图

YOLOv8(You Only Look Once version 8)目标检测模型的结构图。它展示了模型的三个主要部分:Backbone(主干网络)、Neck(颈部网络)和 Head(头部网络),以及它们的子模块和连接方式。
在这里插入图片描述

概述
提供全新SOTA模型,包括640(P5)和1280(P6)分辨率的目标检测网络和基于YOLACT的实例分割模型。

  • Backbone:骨干网络和neck部分参考了YOLOv7 ELAN的设计思想,将YOLOv5的C3结构换成了梯度流更丰富的C2f结构,并对不同尺度模型调整了不同通道数。
  • Head:Head部分较yolov5而言有两大改进:(1)换成了目前主流的解耦头结构(Decoupled-Head),将分类与检测头分离 (2)将Anchor-Based换成Anchor-Free
  • Loss:YOLOv8抛弃以往IOU匹配或者单边比例的分配方法,使用了Task-Aligned Assigner正负样本匹配方式。2)并引入了 Distribution Focal Loss(DFL)
  • Train:训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,有效地提升精度

三、模型结构解析

ultralytics/nn/modules.py文件中定义了yolov8网络中的卷积神经单元,也是后续网络魔改的主要文件。

四、模型结构打印

每次进行YOLOv8模型训练前,都会打印相应的模型结构信息,如下图。

在这里插入图片描述

通过查看源码发现,信息是在源码DetectionModel类中,打印出来的。因此我们直接使用该类,传入我们自己的模型配置文件,运行该类即可。

第一步:进入./ultralytics/nn/tasks.py文件,找到DetectionModel类

代码如下:

class DetectionModel(BaseModel):"""YOLOv8 detection model."""def __init__(self, cfg="yolov8n.yaml", ch=3, nc=None, verbose=True):  # model, input channels, number of classes"""Initialize the YOLOv8 detection model with the given config and parameters."""super().__init__()self.yaml = cfg if isinstance(cfg, dict) else yaml_model_load(cfg)  # cfg dictif self.yaml["backbone"][0][2] == "Silence":LOGGER.warning("WARNING ⚠️ YOLOv9 `Silence` module is deprecated in favor of nn.Identity. ""Please delete local *.pt file and re-download the latest model checkpoint.")self.yaml["backbone"][0][2] = "nn.Identity"# Define modelch = self.yaml["ch"] = self.yaml.get("ch", ch)  # input channelsif nc and nc != self.yaml["nc"]:LOGGER.info(f"Overriding model.yaml nc={self.yaml['nc']} with nc={nc}")self.yaml["nc"] = nc  # override YAML valueself.model, self.save = parse_model(deepcopy(self.yaml), ch=ch, verbose=verbose)  # model, savelistself.names = {i: f"{i}" for i in range(self.yaml["nc"])}  # default names dictself.inplace = self.yaml.get("inplace", True)self.end2end = getattr(self.model[-1], "end2end", False)# Build stridesm = self.model[-1]  # Detect()if isinstance(m, Detect):  # includes all Detect subclasses like Segment, Pose, OBB, WorldDetects = 256  # 2x min stridem.inplace = self.inplacedef _forward(x):"""Performs a forward pass through the model, handling different Detect subclass types accordingly."""if self.end2end:return self.forward(x)["one2many"]return self.forward(x)[0] if isinstance(m, (Segment, Pose, OBB)) else self.forward(x)m.stride = torch.tensor([s / x.shape[-2] for x in _forward(torch.zeros(1, ch, s, s))])  # forwardself.stride = m.stridem.bias_init()  # only run onceelse:self.stride = torch.Tensor([32])  # default stride for i.e. RTDETR# Init weights, biasesinitialize_weights(self)if verbose:self.info()LOGGER.info("")def _predict_augment(self, x):"""Perform augmentations on input image x and return augmented inference and train outputs."""if getattr(self, "end2end", False):LOGGER.warning("WARNING ⚠️ End2End model does not support 'augment=True' prediction. ""Reverting to single-scale prediction.")return self._predict_once(x)img_size = x.shape[-2:]  # height, widths = [1, 0.83, 0.67]  # scalesf = [None, 3, None]  # flips (2-ud, 3-lr)y = []  # outputsfor si, fi in zip(s, f):xi = scale_img(x.flip(fi) if fi else x, si, gs=int(self.stride.max()))yi = super().predict(xi)[0]  # forwardyi = self._descale_pred(yi, fi, si, img_size)y.append(yi)y = self._clip_augmented(y)  # clip augmented tailsreturn torch.cat(y, -1), None  # augmented inference, train

第二步:在task.py文件下添加以下代码

# 模型网络结构配置文件路径
yaml_path = 'ultralytics/cfg/models/v8/yolov8n.yaml'
# 改进的模型结构路径
# yaml_path = 'ultralytics/cfg/models/v8/yolov8n-CBAM.yaml'  
# 传入模型网络结构配置文件cfg, nc为模型检测类别数
DetectionModel(cfg=yaml_path,nc=5)

第三步:运行task.py文件即可打印网络参数

效果如下:

在这里插入图片描述

模型配置文件一共有23行,params为每一层的参数量大小,module为每一层的结构名称,arguments为每一层结构需要传入的参数。最后一行summary为总的信息参数,模型一共有25层,参数量(parameters)为:3011823 ,计算量GFLOPs为:8.2

五、查看详细网络结构

第一步:新建tools/DetectModel.py文件

代码如下:

from ultralytics import YOLO
# 加载训练好的模型或者网络结构配置文件
#model = YOLO('best.pt')
model = YOLO('ultralytics/cfg/models/v8/yolov8.yaml')
# 打印模型参数信息
print(model.info())
print(model.info(detailed=True))

第二步:运行DetectModel.py

打印出了模型每一层网络结构的名字、参数量以及该层的结构形状。

layer                                     name  gradient   parameters                shape         mu      sigma0                      model.0.conv.weight      True          432        [16, 3, 3, 3]    -0.0018      0.112 torch.float321                        model.0.bn.weight      True           16                 [16]          1          0 torch.float322                          model.0.bn.bias      True           16                 [16]          0          0 torch.float323                      model.1.conv.weight      True         4608       [32, 16, 3, 3]  -5.27e-05     0.0479 torch.float324                        model.1.bn.weight      True           32                 [32]          1          0 torch.float325                          model.1.bn.bias      True           32                 [32]          0          0 torch.float326                  model.2.cv1.conv.weight      True         1024       [32, 32, 1, 1]    0.00697      0.104 torch.float327                    model.2.cv1.bn.weight      True           32                 [32]          1          0 torch.float328                      model.2.cv1.bn.bias      True           32                 [32]          0          0 torch.float329                  model.2.cv2.conv.weight      True         1536       [32, 48, 1, 1]    0.00101     0.0828 torch.float3210                    model.2.cv2.bn.weight      True           32                 [32]          1          0 torch.float3211                      model.2.cv2.bn.bias      True           32                 [32]          0          0 torch.float3212              model.2.m.0.cv1.conv.weight      True         2304       [16, 16, 3, 3]  -0.000518     0.0479 torch.float3213                model.2.m.0.cv1.bn.weight      True           16                 [16]          1          0 torch.float3214                  model.2.m.0.cv1.bn.bias      True           16                 [16]          0          0 torch.float3215              model.2.m.0.cv2.conv.weight      True         2304       [16, 16, 3, 3]     0.0003     0.0483 torch.float3216                model.2.m.0.cv2.bn.weight      True           16                 [16]          1          0 torch.float3217                  model.2.m.0.cv2.bn.bias      True           16                 [16]          0          0 torch.float3218                      model.3.conv.weight      True        18432       [64, 32, 3, 3]  -2.67e-05      0.034 torch.float3219                        model.3.bn.weight      True           64                 [64]          1          0 torch.float3220                          model.3.bn.bias      True           64                 [64]          0          0 torch.float3221                  model.4.cv1.conv.weight      True         4096       [64, 64, 1, 1]   -0.00063      0.072 torch.float3222                    model.4.cv1.bn.weight      True           64                 [64]          1          0 torch.float3223                      model.4.cv1.bn.bias      True           64                 [64]          0          0 torch.float3224                  model.4.cv2.conv.weight      True         8192      [64, 128, 1, 1]   0.000625     0.0512 torch.float3225                    model.4.cv2.bn.weight      True           64                 [64]          1          0 torch.float3226                      model.4.cv2.bn.bias      True           64                 [64]          0          0 torch.float3227              model.4.m.0.cv1.conv.weight      True         9216       [32, 32, 3, 3]   0.000206     0.0341 torch.float3228                model.4.m.0.cv1.bn.weight      True           32                 [32]          1          0 torch.float3229                  model.4.m.0.cv1.bn.bias      True           32                 [32]          0          0 torch.float3230              model.4.m.0.cv2.conv.weight      True         9216       [32, 32, 3, 3]  -7.44e-05      0.034 torch.float3231                model.4.m.0.cv2.bn.weight      True           32                 [32]          1          0 torch.float3232                  model.4.m.0.cv2.bn.bias      True           32                 [32]          0          0 torch.float3233              model.4.m.1.cv1.conv.weight      True         9216       [32, 32, 3, 3]  -0.000666     0.0342 torch.float3234                model.4.m.1.cv1.bn.weight      True           32                 [32]          1          0 torch.float3235                  model.4.m.1.cv1.bn.bias      True           32                 [32]          0          0 torch.float3236              model.4.m.1.cv2.conv.weight      True         9216       [32, 32, 3, 3]   6.18e-05     0.0341 torch.float3237                model.4.m.1.cv2.bn.weight      True           32                 [32]          1          0 torch.float3238                  model.4.m.1.cv2.bn.bias      True           32                 [32]          0          0 torch.float3239                      model.5.conv.weight      True        73728      [128, 64, 3, 3]   -6.7e-05     0.0241 torch.float3240                        model.5.bn.weight      True          128                [128]          1          0 torch.float3241                          model.5.bn.bias      True          128                [128]          0          0 torch.float3242                  model.6.cv1.conv.weight      True        16384     [128, 128, 1, 1]  -0.000304      0.051 torch.float3243                    model.6.cv1.bn.weight      True          128                [128]          1          0 torch.float3244                      model.6.cv1.bn.bias      True          128                [128]          0          0 torch.float3245                  model.6.cv2.conv.weight      True        32768     [128, 256, 1, 1]   4.06e-05      0.036 torch.float3246                    model.6.cv2.bn.weight      True          128                [128]          1          0 torch.float3247                      model.6.cv2.bn.bias      True          128                [128]          0          0 torch.float3248              model.6.m.0.cv1.conv.weight      True        36864       [64, 64, 3, 3]  -0.000123     0.0241 torch.float3249                model.6.m.0.cv1.bn.weight      True           64                 [64]          1          0 torch.float3250                  model.6.m.0.cv1.bn.bias      True           64                 [64]          0          0 torch.float3251              model.6.m.0.cv2.conv.weight      True        36864       [64, 64, 3, 3]  -6.25e-05      0.024 torch.float3252                model.6.m.0.cv2.bn.weight      True           64                 [64]          1          0 torch.float3253                  model.6.m.0.cv2.bn.bias      True           64                 [64]          0          0 torch.float3254              model.6.m.1.cv1.conv.weight      True        36864       [64, 64, 3, 3]   2.97e-05     0.0241 torch.float3255                model.6.m.1.cv1.bn.weight      True           64                 [64]          1          0 torch.float3256                  model.6.m.1.cv1.bn.bias      True           64                 [64]          0          0 torch.float3257              model.6.m.1.cv2.conv.weight      True        36864       [64, 64, 3, 3]   0.000165     0.0241 torch.float3258                model.6.m.1.cv2.bn.weight      True           64                 [64]          1          0 torch.float3259                  model.6.m.1.cv2.bn.bias      True           64                 [64]          0          0 torch.float3260                      model.7.conv.weight      True       294912     [256, 128, 3, 3]  -1.75e-05      0.017 torch.float3261                        model.7.bn.weight      True          256                [256]          1          0 torch.float3262                          model.7.bn.bias      True          256                [256]          0          0 torch.float3263                  model.8.cv1.conv.weight      True        65536     [256, 256, 1, 1]   0.000161      0.036 torch.float3264                    model.8.cv1.bn.weight      True          256                [256]          1          0 torch.float3265                      model.8.cv1.bn.bias      True          256                [256]          0          0 torch.float3266                  model.8.cv2.conv.weight      True        98304     [256, 384, 1, 1]   0.000193     0.0295 torch.float3267                    model.8.cv2.bn.weight      True          256                [256]          1          0 torch.float3268                      model.8.cv2.bn.bias      True          256                [256]          0          0 torch.float3269              model.8.m.0.cv1.conv.weight      True       147456     [128, 128, 3, 3]   5.85e-05      0.017 torch.float3270                model.8.m.0.cv1.bn.weight      True          128                [128]          1          0 torch.float3271                  model.8.m.0.cv1.bn.bias      True          128                [128]          0          0 torch.float3272              model.8.m.0.cv2.conv.weight      True       147456     [128, 128, 3, 3]  -3.18e-05      0.017 torch.float3273                model.8.m.0.cv2.bn.weight      True          128                [128]          1          0 torch.float3274                  model.8.m.0.cv2.bn.bias      True          128                [128]          0          0 torch.float3275                  model.9.cv1.conv.weight      True        32768     [128, 256, 1, 1]   9.07e-05      0.036 torch.float3276                    model.9.cv1.bn.weight      True          128                [128]          1          0 torch.float3277                      model.9.cv1.bn.bias      True          128                [128]          0          0 torch.float3278                  model.9.cv2.conv.weight      True       131072     [256, 512, 1, 1]  -6.56e-05     0.0255 torch.float3279                    model.9.cv2.bn.weight      True          256                [256]          1          0 torch.float3280                      model.9.cv2.bn.bias      True          256                [256]          0          0 torch.float3281                 model.12.cv1.conv.weight      True        49152     [128, 384, 1, 1]   3.35e-05     0.0295 torch.float3282                   model.12.cv1.bn.weight      True          128                [128]          1          0 torch.float3283                     model.12.cv1.bn.bias      True          128                [128]          0          0 torch.float3284                 model.12.cv2.conv.weight      True        24576     [128, 192, 1, 1]   0.000263     0.0417 torch.float3285                   model.12.cv2.bn.weight      True          128                [128]          1          0 torch.float3286                     model.12.cv2.bn.bias      True          128                [128]          0          0 torch.float3287             model.12.m.0.cv1.conv.weight      True        36864       [64, 64, 3, 3]  -9.72e-05     0.0241 torch.float3288               model.12.m.0.cv1.bn.weight      True           64                 [64]          1          0 torch.float3289                 model.12.m.0.cv1.bn.bias      True           64                 [64]          0          0 torch.float3290             model.12.m.0.cv2.conv.weight      True        36864       [64, 64, 3, 3]   4.32e-05     0.0241 torch.float3291               model.12.m.0.cv2.bn.weight      True           64                 [64]          1          0 torch.float3292                 model.12.m.0.cv2.bn.bias      True           64                 [64]          0          0 torch.float3293                 model.15.cv1.conv.weight      True        12288      [64, 192, 1, 1]  -0.000269     0.0416 torch.float3294                   model.15.cv1.bn.weight      True           64                 [64]          1          0 torch.float3295                     model.15.cv1.bn.bias      True           64                 [64]          0          0 torch.float3296                 model.15.cv2.conv.weight      True         6144       [64, 96, 1, 1]   0.000311     0.0588 torch.float3297                   model.15.cv2.bn.weight      True           64                 [64]          1          0 torch.float3298                     model.15.cv2.bn.bias      True           64                 [64]          0          0 torch.float3299             model.15.m.0.cv1.conv.weight      True         9216       [32, 32, 3, 3]   6.21e-05     0.0341 torch.float32100               model.15.m.0.cv1.bn.weight      True           32                 [32]          1          0 torch.float32101                 model.15.m.0.cv1.bn.bias      True           32                 [32]          0          0 torch.float32102             model.15.m.0.cv2.conv.weight      True         9216       [32, 32, 3, 3]   0.000244     0.0336 torch.float32103               model.15.m.0.cv2.bn.weight      True           32                 [32]          1          0 torch.float32104                 model.15.m.0.cv2.bn.bias      True           32                 [32]          0          0 torch.float32105                     model.16.conv.weight      True        36864       [64, 64, 3, 3]   -0.00011      0.024 torch.float32106                       model.16.bn.weight      True           64                 [64]          1          0 torch.float32107                         model.16.bn.bias      True           64                 [64]          0          0 torch.float32108                 model.18.cv1.conv.weight      True        24576     [128, 192, 1, 1]   0.000266     0.0417 torch.float32109                   model.18.cv1.bn.weight      True          128                [128]          1          0 torch.float32110                     model.18.cv1.bn.bias      True          128                [128]          0          0 torch.float32111                 model.18.cv2.conv.weight      True        24576     [128, 192, 1, 1]   0.000163     0.0416 torch.float32112                   model.18.cv2.bn.weight      True          128                [128]          1          0 torch.float32113                     model.18.cv2.bn.bias      True          128                [128]          0          0 torch.float32114             model.18.m.0.cv1.conv.weight      True        36864       [64, 64, 3, 3]   -6.7e-05      0.024 torch.float32115               model.18.m.0.cv1.bn.weight      True           64                 [64]          1          0 torch.float32116                 model.18.m.0.cv1.bn.bias      True           64                 [64]          0          0 torch.float32117             model.18.m.0.cv2.conv.weight      True        36864       [64, 64, 3, 3]  -0.000178      0.024 torch.float32118               model.18.m.0.cv2.bn.weight      True           64                 [64]          1          0 torch.float32119                 model.18.m.0.cv2.bn.bias      True           64                 [64]          0          0 torch.float32120                     model.19.conv.weight      True       147456     [128, 128, 3, 3]  -4.19e-05      0.017 torch.float32121                       model.19.bn.weight      True          128                [128]          1          0 torch.float32122                         model.19.bn.bias      True          128                [128]          0          0 torch.float32123                 model.21.cv1.conv.weight      True        98304     [256, 384, 1, 1]   -3.8e-05     0.0294 torch.float32124                   model.21.cv1.bn.weight      True          256                [256]          1          0 torch.float32125                     model.21.cv1.bn.bias      True          256                [256]          0          0 torch.float32126                 model.21.cv2.conv.weight      True        98304     [256, 384, 1, 1]   1.01e-05     0.0294 torch.float32127                   model.21.cv2.bn.weight      True          256                [256]          1          0 torch.float32128                     model.21.cv2.bn.bias      True          256                [256]          0          0 torch.float32129             model.21.m.0.cv1.conv.weight      True       147456     [128, 128, 3, 3]  -6.31e-05      0.017 torch.float32130               model.21.m.0.cv1.bn.weight      True          128                [128]          1          0 torch.float32131                 model.21.m.0.cv1.bn.bias      True          128                [128]          0          0 torch.float32132             model.21.m.0.cv2.conv.weight      True       147456     [128, 128, 3, 3]   1.04e-05      0.017 torch.float32133               model.21.m.0.cv2.bn.weight      True          128                [128]          1          0 torch.float32134                 model.21.m.0.cv2.bn.bias      True          128                [128]          0          0 torch.float32135             model.22.cv2.0.0.conv.weight      True        36864       [64, 64, 3, 3]  -0.000182     0.0241 torch.float32136               model.22.cv2.0.0.bn.weight      True           64                 [64]          1          0 torch.float32137                 model.22.cv2.0.0.bn.bias      True           64                 [64]          0          0 torch.float32138             model.22.cv2.0.1.conv.weight      True        36864       [64, 64, 3, 3]   0.000133     0.0241 torch.float32139               model.22.cv2.0.1.bn.weight      True           64                 [64]          1          0 torch.float32140                 model.22.cv2.0.1.bn.bias      True           64                 [64]          0          0 torch.float32141                  model.22.cv2.0.2.weight      True         4096       [64, 64, 1, 1]  -0.000657     0.0724 torch.float32142                    model.22.cv2.0.2.bias      True           64                 [64]          1          0 torch.float32143             model.22.cv2.1.0.conv.weight      True        73728      [64, 128, 3, 3]  -6.36e-06     0.0171 torch.float32144               model.22.cv2.1.0.bn.weight      True           64                 [64]          1          0 torch.float32145                 model.22.cv2.1.0.bn.bias      True           64                 [64]          0          0 torch.float32146             model.22.cv2.1.1.conv.weight      True        36864       [64, 64, 3, 3]  -0.000187      0.024 torch.float32147               model.22.cv2.1.1.bn.weight      True           64                 [64]          1          0 torch.float32148                 model.22.cv2.1.1.bn.bias      True           64                 [64]          0          0 torch.float32149                  model.22.cv2.1.2.weight      True         4096       [64, 64, 1, 1]  -0.000317     0.0718 torch.float32150                    model.22.cv2.1.2.bias      True           64                 [64]          1          0 torch.float32151             model.22.cv2.2.0.conv.weight      True       147456      [64, 256, 3, 3]  -2.29e-05      0.012 torch.float32152               model.22.cv2.2.0.bn.weight      True           64                 [64]          1          0 torch.float32153                 model.22.cv2.2.0.bn.bias      True           64                 [64]          0          0 torch.float32154             model.22.cv2.2.1.conv.weight      True        36864       [64, 64, 3, 3]  -0.000249     0.0241 torch.float32155               model.22.cv2.2.1.bn.weight      True           64                 [64]          1          0 torch.float32156                 model.22.cv2.2.1.bn.bias      True           64                 [64]          0          0 torch.float32157                  model.22.cv2.2.2.weight      True         4096       [64, 64, 1, 1]   -0.00175     0.0713 torch.float32158                    model.22.cv2.2.2.bias      True           64                 [64]          1          0 torch.float32159             model.22.cv3.0.0.conv.weight      True        36864       [64, 64, 3, 3]   8.05e-05     0.0241 torch.float32160               model.22.cv3.0.0.bn.weight      True           64                 [64]          1          0 torch.float32161                 model.22.cv3.0.0.bn.bias      True           64                 [64]          0          0 torch.float32162             model.22.cv3.0.1.conv.weight      True        36864       [64, 64, 3, 3]  -0.000122     0.0241 torch.float32163               model.22.cv3.0.1.bn.weight      True           64                 [64]          1          0 torch.float32164                 model.22.cv3.0.1.bn.bias      True           64                 [64]          0          0 torch.float32165                  model.22.cv3.0.2.weight      True         2880       [45, 64, 1, 1]  -0.000135     0.0724 torch.float32166                    model.22.cv3.0.2.bias      True           45                 [45]        -11   9.64e-07 torch.float32167             model.22.cv3.1.0.conv.weight      True        73728      [64, 128, 3, 3]  -1.51e-05      0.017 torch.float32168               model.22.cv3.1.0.bn.weight      True           64                 [64]          1          0 torch.float32169                 model.22.cv3.1.0.bn.bias      True           64                 [64]          0          0 torch.float32170             model.22.cv3.1.1.conv.weight      True        36864       [64, 64, 3, 3]    4.7e-05      0.024 torch.float32171               model.22.cv3.1.1.bn.weight      True           64                 [64]          1          0 torch.float32172                 model.22.cv3.1.1.bn.bias      True           64                 [64]          0          0 torch.float32173                  model.22.cv3.1.2.weight      True         2880       [45, 64, 1, 1]     -0.003      0.072 torch.float32174                    model.22.cv3.1.2.bias      True           45                 [45]      -9.57   9.64e-07 torch.float32175             model.22.cv3.2.0.conv.weight      True       147456      [64, 256, 3, 3]  -3.16e-05      0.012 torch.float32176               model.22.cv3.2.0.bn.weight      True           64                 [64]          1          0 torch.float32177                 model.22.cv3.2.0.bn.bias      True           64                 [64]          0          0 torch.float32178             model.22.cv3.2.1.conv.weight      True        36864       [64, 64, 3, 3]  -7.14e-05     0.0241 torch.float32179               model.22.cv3.2.1.bn.weight      True           64                 [64]          1          0 torch.float32180                 model.22.cv3.2.1.bn.bias      True           64                 [64]          0          0 torch.float32181                  model.22.cv3.2.2.weight      True         2880       [45, 64, 1, 1]  -0.000625     0.0719 torch.float32182                    model.22.cv3.2.2.bias      True           45                 [45]      -8.19          0 torch.float32183                 model.22.dfl.conv.weight     False           16        [1, 16, 1, 1]        7.5       4.76 torch.float32
YOLOv8 summary: 225 layers, 3,019,623 parameters, 3,019,607 gradients, 8.2 GFLOPs
(225, 3019623, 3019607, 8.2414592)

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

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

相关文章

python+vue3+onlyoffice在线文档系统实战20240726笔记,左侧菜单实现和最近文档基本实现

解决右侧高度过高的问题 解决方案:去掉右侧顶部和底部。 实现左侧菜单 最近文档,纯粹文档 我的文档,既包括文件夹也包括文件 共享文档,别人分享给我的 基本实现代码: 渲染效果: 简单优化 设置默认菜…

RT-Thread Studio搭建 Renesa Version Board开发环境

目录 概述 1 认识Version Board 1.1 Vision-Board简介 1.2 Vision-Board的资源 2 搭建Version Board开发环境 2.1 RT Thread Studio 2.2 安装SDK 3 开发环境验证 3.1 创建项目 3.2 编译和下载 概述 本文主要介绍使用RT-Thread Studio搭建 Renesa Version Board开发环…

c语言第四天笔记

关于 混合操作,不同计算结果推理 第一种编译结果: int i 5; int sum (i) (i) 6 7 13 第二种编译结果: int i 5; int sum (i) (i) 6 7 7 7 前面的7是因为后面i的变化被影响后,重新赋值 14 第一种编译结果&#xff…

Html+Css网页开发之动态登录页面(默认Chrome)

>>效果展示图<< 一、需求分析与设计要求 实现了一个动态背景图案的效果&#xff0c;包括一个白色的容器&#xff0c;内部有一个标题、一个输入框、一个按钮和一些文本。 背景是一个渐变色的线性渐变&#xff0c;而在容器的周围&#xff0c;有一些随机的方形和圆形图…

【CN】Argo 持续集成和交付(一)

1.简介 Argo 英 [ˈɑ:ɡəu] 美 [ˈɑrˌɡo] Kubernetes 原生工具&#xff0c;用于运行工作流程、管理集群以及正确执行 GitOps。 Argo 于 2020 年 3 月 26 日被 CNCF 接受为孵化成熟度级别&#xff0c;然后于 2022 年 12 月 6 日转移到毕业成熟度级别。 argoproj.github.i…

【数学建模】权重生成与评价模型(下)

文章目录 权重生成与评价模型&#xff08;下&#xff09;5. 模糊综合评价法5.1 模糊综合分析法的原理5.2 模糊综合分析法的案例 6. 秩和比分析法6.1 秩和比分析法原理6.2 秩和比分析法案例6.3 RSR的分布及其计算确定RSR的分布计算回归方程示例代码实现代码解释 6.4 秩和比分析法…

Godot入门 02玩家1.0版

添加Node2D节点&#xff0c;重命名Game 创建玩家场景&#xff0c;添加CharacterBody2D节点 添加AnimatedSprite2D节点 从精灵表中添加帧 选择文件 设置成8*8 图片边缘模糊改为清晰 设置加载后自动播放&#xff0c;动画循环 。动画速度10FPS&#xff0c;修改动画名称idle。 拖动…

【数据结构初阶】单链表经典算法题十二道——得道飞升(上篇)

目录 1、移除元素 2、反转链表 3、链表的中间节点 4、合并两个有序链表 Relaxing Time&#xff01;&#xff01;&#xff01; ———————————————— 天气之子幻 ———————————————— 1、移除元素 思路&#xff1a; 创建一个新链表&#xff0…

Open3D 获取点云中指定高度区域的所有点

目录 一、概述 1.1实现步骤 1.2应用 二、代码实现 1.1关键函数 1.2完整代码 三、实现效果 3.1原始点云 3.2处理后点云 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新&#xff09;-CSDN博客 一、…

CentOS 7.x 的 YUM 仓库问题

背景 CentOS Linux 7 的生命周期&#xff08;EOL&#xff09;已经于 2024 年 6 月 30 日终止这意味着 CentOS 7.x 的官方镜像站点将不再提供服务&#xff0c;导致在使用 yum 安装或更新程序时可能会遇到 错误。本文将介绍如何解决这一问题&#xff0c;使得你可以继续在 CentOS…

【vim】ubuntu20-server 安装配置 vim 最新最详细

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【vim】ubuntu20-server 安装配置 vim 最新最详细 开发环境一、vim github二、安装必…

Elasticsearch 使用误区之三——分片设置不合理

Elasticsearch 是一个强大的搜索和分析引擎&#xff0c;它通过将数据分散到多个节点的分片中来进行分布式处理。 本文将探讨分片大小和策略的概念&#xff0c;以优化 Elasticsearch 的性能并防止过度分片或分片过大等问题。 先看个分片设置不合理的真实企业案例&#xff1a; 10…

CSS:position属性

一、属性值 1.1 fixed 固定位置的元素&#xff0c;相对于浏览器窗口进行定位。 元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。 网站中的固定 header 和 footer 就是用固定定位来实现的&#xff1b; header效果图 footer效果图 1.2 absol…

Linux系统安装Cobol语言及IBM大型机模拟软件Hercules

COBOL&#xff08;Common Business-Oriented Language&#xff09;起源于50年代中期&#xff0c;是一种面向过程的高级程序设计语言&#xff0c;主要用于商业和数据处理领域。经过不断发展和标准化&#xff0c;已成为国际上应用最广泛的商业编程语言之一&#xff0c;在某red书上…

Windows Server搭建局域网NTP时间服务器与客户端通实现

1.服务器环境&#xff1a; win11更改注册表 winR输入regedit win11更改注册表 winR输入regedit 2.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config&#xff0c;找到Config目录&#xff0c;双击Config目录下的AnnounceFlags&#xff0c;设为5。 3.HKEY_L…

Nginx 配置与优化:常见问题全面解析

文章目录 Nginx 配置与优化:常见问题全面解析一、Nginx 安装与配置问题1.1 Nginx 安装失败问题描述解决方法1.2 Nginx 配置文件语法错误问题描述解决方法二、Nginx 服务启动与停止问题2.1 Nginx 无法启动问题描述解决方法2.2 Nginx 服务无法停止问题描述解决方法三、Nginx 性能…

Http 和 Https 的区别(图文详解)

在现代网络通信中&#xff0c;保护数据的安全性和用户的隐私是至关重要的。HTTP&#xff08;Hypertext Transfer Protocol&#xff09;和 HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是两种常见的网络通信协议&#xff0c;但它们在数据保护方面的能力存在…

snkemake入门

一、背景介绍 snakemake是一种用于自动化流程的开源工具&#xff0c;是一款基于python3的软件。在生物信息学、高通量测序数据分析、大规模数据处理等领域非常流行。 snakemake的官网&#xff1a;Snakemake | Snakemake 8.16.0 documentationhttps://snakemake.readthedocs.i…

自监督学习概述(Self-Supervised Learning,SSL)

自监督学习&#xff08;Self-Supervised Learning&#xff0c;SSL&#xff09;是一种机器学习方法&#xff0c;旨在利用未标记数据进行训练。这种方法通过从数据本身生成伪标签&#xff0c;来创建监督信号&#xff0c;使得模型能够学习有效的数据表示。自监督学习在深度学习领域…

C++ | Leetcode C++题解之第283题移动零

题目&#xff1a; 题解&#xff1a; class Solution { public:void moveZeroes(vector<int>& nums) {int n nums.size(), left 0, right 0;while (right < n) {if (nums[right]) {swap(nums[left], nums[right]);left;}right;}} };