日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习Week14-yolov5s.yaml文件解读(YOLOv5)

發布時間:2024/3/24 pytorch 78 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习Week14-yolov5s.yaml文件解读(YOLOv5) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這周接著詳細解析小白YOLOv5全流程-訓練+實現數字識別_牛大了2022的博客-CSDN博客_yolov5識別數字,上周入門教大家下載配置環境,如果沒有的話請參考上一篇的文章深度學習Week12-訓練自己的數據集(YOLOv5)_牛大了2022的博客-CSDN博客

一、介紹和要求

YOLOv5配置了4種不同大小的網絡模型,分別是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,其中 YOLOv5s 是網絡深度和寬度最小但檢測速度最快的模型(之前數字監測就是用yolov5s),其他3種模型都是在YOLOv5s的基礎上不斷加深、加寬網絡使得網絡規模擴大,在增強模型檢測性能的同時增加了計算資源和速度消耗。出于對檢測精度、模型大小、檢測速度的綜合考量,本文選擇YOLOv5s作為研究對象進行介紹。
./models/yolov5s.yaml文件是YOLOv5s網絡結構的定義文件,如果你想改進算法的網絡結構,需要先修改該文件中的相關參數,然后再修改./models/common.py與./models/yolo.py中的相關代碼。

📌 本周任務:將yolov5s網絡模型中第4層的C3*2修改為C3*1,第6層的C3*3修改為C3*2。
💫 任務提示:僅需修改./models/yolov5s.yaml文件。

?1、參數配置

# Parameters nc: 80 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple

·depth_multiple:控制子模塊數量=int(number*depth)(該參數與任務有關)
·width_multiple:控制卷積核的數量=int(number*width)

四種模型的這兩者不同。

2、anchors

anchors:- [10,13, 16,30, 33,23] # P3/8- [30,61, 62,45, 59,119] # P4/16- [116,90, 156,198, 373,326] # P5/32

三者分別適合小目標、中目標和大目標的檢測。

??YOLOv5初始化了9個anchors,在三個Detect層使用(3個feature map)中使用,每個feature map的每個grid_cell 都有三個anchor進行預測。分配規則:

尺度越大的 feature map 越靠前,相對原圖的下采樣率越小,感受野越小,所以相對可以預測一些尺度比較小的物體,所有分配到的 anchors 越小;

尺度越小的 feature map 越靠后,相對原圖的下采樣率越大,感受野越大,所以相對可以預測一些尺度比較大的物體,所有分配到的 anchors 越大。

即可以在小特征圖(feature map)上檢測大目標,也可以在大特征圖上檢測小目標。

3、backbone

backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2[-1, 1, Conv, [128, 3, 2]], # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]], # 3-P3/8[-1, 3, C3, [256]],[-1, 1, Conv, [512, 3, 2]], # 5-P4/16[-1, 6, C3, [512]],[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]], # 9]

這是yolov5s的backbone,可以看到每一個模塊算一行,每行都由四個參數構成。分別是:
·from:表示當前模塊的輸入來自那一層的輸出,-1表示來自上一層的輸出。
·number:表示當前模塊的理論重復次數,實際的重復次數還要由上面的參數depth_multiple共同決定,決定網絡模型的深度。
·module:模塊類名,通過這個類名去common.py中尋找相應的類,進行模塊化的搭建網絡。
·args:是一個1ist,模塊搭建所需參數,channe1,kernel_size,stride,padding,bias等,會在網絡搭建過程中根據不同層進行改變。

4.head

# YOLOv5 v6.0 head head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 6], 1, Concat, [1]], # cat backbone P4[-1, 3, C3, [512, False]], # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, Concat, [1]], # cat backbone P3[-1, 3, C3, [256, False]], # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]], # cat head P4[-1, 3, C3, [512, False]], # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]], # cat head P5[-1, 3, C3, [1024, False]], # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)]

和backbone一樣

修改模型

?找到后打開,然后進行修改

?改好后之后訓練選yolov5s模型就可以了~詳情見頂端文章鏈接。

(運行train.py文件后,將可以在控制臺看到網絡模型的輸出)

總結

以上是生活随笔為你收集整理的深度学习Week14-yolov5s.yaml文件解读(YOLOv5)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。