本周任务:根据yolov8n、yolov8s模型的结构输出,手写出yolov8l的模型输出、

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

一、参数配置

Parameters:

nc:类别数量,即模型可以识别的物体类别数

scales:包含了不同模型配置的尺度参数,用于调整模型的规模,通过尺度参数就可以实现不同复杂度的模型设计。yolov8n、yolov8s、yolov8m、yolov8l、yolov8x五种模型只在depth、width与max_channels这三个参数上有区别。

        ·depth:深度,控制子模块数量,=int(number*depth)

        ·width:宽度,控制卷积核的数量,=int(number*width)

        ·max_channels:最大通道数

yolov8五种模型性能的详细参数如下表所示:

 二、模型整体结构

1.Backbone模块

每一个模块是一行,每行由四个参数构成。

        ·from:表示当前模块的输入来自那一层的输出,-1表示来自上一层输出,层编号由0开始计数

        ·repeats:表示当前模块的理论重复次数,实际的重复次数还要由上面的参数depth_multiple共同决定,该参数影响整体网络模型的深度

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

        ·args:一个list,模块搭建所需参数,channel,kernel_size,stride,padding,bias等

2.head模块

数据格式与backbone一致

3.模型结构输出

注意:结合参数配置中depth、width与max_channels三个参数对比模型结构输出的异同

yolov8n.yaml

yolov8s.yaml

任务:

回答:

yolov8l.yaml

三、总结

每一个模块都要好好学习,学了发现没有想象中的难了,本来不太理解的模型输出,靠着deepseek和以前资料也搞懂了。果然之前的东西还是得常看,许久不看就容易忘记。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐