深度学习Y8周:yolov8.yaml文件解读
- 🍨 本文为🔗365天深度学习训练营中的学习记录博客
- 🍖 原作者:K同学啊
本周任务:根据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和以前资料也搞懂了。果然之前的东西还是得常看,许久不看就容易忘记。