- 🍨 本文為🔗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和以前資料也搞懂了。果然之前的東西還是得常看,許久不看就容易忘記。