国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

YOLOv5訓(xùn)練速度慢的一些解決方法

這篇具有很好參考價值的文章主要介紹了YOLOv5訓(xùn)練速度慢的一些解決方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ? 博主電腦配置是AMD R5 3600,Nvidia RTX3060 12G,16G 3200MHz內(nèi)存,訓(xùn)練數(shù)據(jù)集是自建數(shù)據(jù)集,大約1200張圖片,3個檢測目標(biāo)。

? ? 訓(xùn)練YOLOv5-5.0版本的模型參數(shù)設(shè)置,模型是yolov5s,epoch 150(如果想要更好的mAP@0.5:0.95指標(biāo)可以設(shè)置的更大,博主這個收斂的太快了就沒設(shè)太多),batchsize 32或者64,imgsize 640,640,其他均為默認(rèn)。

? ? 在最初訓(xùn)練模型的時候訓(xùn)練一次epoch大約需要3分鐘,而且不管怎么設(shè)置參數(shù),訓(xùn)練時間都不會改變太多,都在3分鐘左右,博主期初是因為自己沒用GPU跑,但是顯存是實實在在的吃滿了,但利率用始終在0%和4%之間波動,大多數(shù)還是在0%,博主百思不得其解,百度了許多方法都沒有用,看了大部分博主的文章,然后看了看運行時候的內(nèi)存,CPU和GPU,發(fā)現(xiàn)CPU使用率不高,但是內(nèi)存和顯存占用很高,那么也就排除了在用CPU跑模型的情況,思來想去大概是出在數(shù)據(jù)讀取上。下面來介紹一些訓(xùn)練模型速度慢可能的原因和解決方法:

? ? 1.GPU太差

? ? 博主之前用的自己的GTX960m的確跑不起來,如果自己顯卡太老,顯存太低,要么降低batchsize和worker,還有imgsize,要么就換一張顯卡。三個參數(shù)的設(shè)置在train.py的設(shè)置代碼如圖yolov5在3060顯卡上訓(xùn)練速度,python,目標(biāo)檢測

yolov5在3060顯卡上訓(xùn)練速度,python,目標(biāo)檢測

yolov5在3060顯卡上訓(xùn)練速度,python,目標(biāo)檢測

? ??2.沒用到GPU,完全是CPU在跑

? ??這種情況也很好發(fā)現(xiàn),只需要看看顯存是否被占用或者有沒有安裝pytorch和cuda,可以用如下代碼來查看是否裝了pytorch和cuda,怎么安裝很多博主已經(jīng)介紹過了,隨便一查一大堆。

yolov5在3060顯卡上訓(xùn)練速度,python,目標(biāo)檢測

import torch

print(torch.__version__)
torch.cuda.is_available()

? ? 上面代碼結(jié)果如下圖,說明正確安裝CUDA和pytorch(記得要版本對應(yīng),不然會報錯)最好把cudnn也裝上。

?yolov5在3060顯卡上訓(xùn)練速度,python,目標(biāo)檢測

? ? 如果是CPU在訓(xùn)練,可以設(shè)置下面的代碼來更換GPU訓(xùn)練模型,default設(shè)置成你GPU的編號就行,單顯卡就是0。

yolov5在3060顯卡上訓(xùn)練速度,python,目標(biāo)檢測

? ??3.訓(xùn)練瓶頸

? ? 3.1 CPU瓶頸

? ? CPU瓶頸很好判斷,那就是CPU占用率很高,同時GPU也在使用,這說明電腦CPU太差了。設(shè)置參數(shù),盡量不讓CPU占用率超過85%。

? ? 3.2 內(nèi)存瓶頸

? ? 簡單來說就是內(nèi)存爆了,基本上不存在內(nèi)存頻率跟不上的,同樣設(shè)置參數(shù),內(nèi)存占用也盡量不要超過85%-90%。

? ? 3.3 IO瓶頸

? ? 這種情況會復(fù)雜很多,這個IO可能是硬盤讀到內(nèi)存導(dǎo)致的,也有可能是從內(nèi)存到GPU導(dǎo)致的,也有可能是讀寫記錄的時候?qū)е碌?,反正雜七雜八的,最難看出哪里出了問題。

? ? 對于以上三種瓶頸可以通過瓶頸測試工具來測試出來,具體方法下面的博客說的很清楚。

(24條消息) PyTorch消除訓(xùn)練瓶頸 提速技巧_*pprp*的博客-CSDN博客

? ? 對于前兩種瓶頸,都可以通過設(shè)置batchsize,workers和imgsize來嘗試解決,或者更換yolov5的模型,使用最小的yolov5s來訓(xùn)練,如果以上方法解決不了,建議更換硬件或者租用云服務(wù)器。對于第三種情況基本只能通過預(yù)讀取數(shù)據(jù)和更換硬件來實現(xiàn)。

? ? 4.性能過剩? ? ??

? ? 對,你沒有看錯,性能過剩也會導(dǎo)致Yolov5訓(xùn)練速度過慢,原因也很讓人無語,在train.py中有這樣一行代碼,這行代碼旨在將數(shù)據(jù)讀到內(nèi)存中進行緩存,這樣就可以更快的存取數(shù)據(jù)。

yolov5在3060顯卡上訓(xùn)練速度,python,目標(biāo)檢測? ? 這樣讀取數(shù)據(jù)就可以讓正在工作的GPU計算完數(shù)據(jù)后不會因為硬盤讀寫太慢而等待數(shù)據(jù)讀入,所以硬盤的讀取很重要,訓(xùn)練過程中,數(shù)據(jù)首先從硬盤讀入到內(nèi)存,然后再從內(nèi)存讀取到CPU或者GPU,所以一塊好的硬盤可以有效的加速模型的訓(xùn)練,特別是筆記本硬盤,筆記本硬盤讀取速度很慢,建議把數(shù)據(jù)放入SSD中。那么問題來了,如果GPU計算速度超過了從硬盤讀入內(nèi)存,再從內(nèi)存讀入GPU的速度,并且硬盤的讀取速度夠快,會發(fā)生什么,這也是導(dǎo)致博主訓(xùn)練速度太慢的原因。

? ? 對于小批量數(shù)據(jù)(很多自建數(shù)據(jù)都是小批量數(shù)據(jù)),一兩千張,檢測目標(biāo)數(shù)不多,模型不復(fù)雜的情況下,對于高端顯卡或者專業(yè)圖形卡都是小case,基本都用不到多少算力,GPU很快就計算完了一個batch的數(shù)據(jù),這時候就要等待數(shù)據(jù)讀入,如果硬盤讀寫夠快,數(shù)據(jù)從硬盤讀入內(nèi)存,GPU再從內(nèi)存讀出,相較于直接從硬盤讀入GPU,本來用作緩存的內(nèi)存反而成了額外的開銷,數(shù)據(jù)繞了遠路,IO讀取時間反而增大了。其實說白了還是IO問題造成的,只不過原因不是硬件太差。當(dāng)然,以上內(nèi)容是博主的猜測,僅供參考。

? ? 所以,對于擁有一個好的SSD,好顯卡,內(nèi)存和CPU性能好的計算機而言,在訓(xùn)練數(shù)據(jù)量小,模型不大的情況下,建議將cacheimages關(guān)掉,直接從硬盤讀入GPU,將action='store_true'替換為action='store_false'即可,關(guān)掉之后博主一次epoch從3分鐘變成了20s,提升巨大,而且訓(xùn)練結(jié)果沒有改變。

? ? 總結(jié)

? ? 大多數(shù)情況來說都是性能不足,存在瓶頸的情況,從而導(dǎo)致模型訓(xùn)練時間長,這也是深度學(xué)習(xí)中常有的事,但是在自己硬件條件好,數(shù)據(jù)量不大的情況下,模型訓(xùn)練仍然慢,就該考慮下是不是因為性能過剩,在數(shù)據(jù)存取上花了過多的時間造成的,這表現(xiàn)為內(nèi)存和顯存使用很大,但是CPU和GPU卻不怎么占用。經(jīng)過博主一些測試,博主發(fā)現(xiàn)不管有沒有用緩存,內(nèi)存和顯存使用都很大,這應(yīng)該是pytorch底層邏輯的關(guān)系,在用GPU跑模型的時候pytorch會自動把數(shù)據(jù)緩存到顯存里,內(nèi)存使用大小僅僅和batch_size有關(guān)。

? ? 值得一提的是,雖然訓(xùn)練速度大大增加,但是依然沒有解決GPU占用率低的問題,雖然GPU占用率很低,但是不會存在一段時間為0的情況,博主推測,可能是因為數(shù)據(jù)量太小,所需要檢測目標(biāo)數(shù)不多造成計算量太小的原因。博主之前在用VOC2012數(shù)據(jù)集進行訓(xùn)練時,GPU占用率就不低,但是仍然只占用了30%-60%,不知道使用這種方法有沒有效,因為學(xué)業(yè)問題只能先跑自己數(shù)據(jù)集,如果有時間博主會更新相關(guān)結(jié)論。

? ? 最后,博主計算機功底不算扎實,如果有問題,希望各位讀者指正。文章來源地址http://www.zghlxwxcb.cn/news/detail-792368.html

到了這里,關(guān)于YOLOv5訓(xùn)練速度慢的一些解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 目標(biāo)檢測 YOLOv5 預(yù)訓(xùn)練模型下載方法

    目標(biāo)檢測 YOLOv5 預(yù)訓(xùn)練模型下載方法

    目標(biāo)檢測 YOLOv5 預(yù)訓(xùn)練模型下載方法 flyfish https://github.com/ultralytics/yolov5 https://github.com/ultralytics/yolov5/releases 可以選擇自己需要的版本和不同任務(wù)類型的模型 后綴名是pt

    2024年02月08日
    瀏覽(30)
  • 一文徹底解決YOLOv5訓(xùn)練找不到標(biāo)簽問題

    一文徹底解決YOLOv5訓(xùn)練找不到標(biāo)簽問題

    ?? 網(wǎng)上絕大部分教程所述解決方法都不靠譜,也沒有分析問題發(fā)生的原因,本文徹底解決了YOLOv5訓(xùn)練時找不到標(biāo)簽,出現(xiàn) No labels found in /path/train.cache 的問題!希望通過本文,在配置環(huán)境的過程中,為各位解決一些不必要的麻煩?!?? Sylvan Ding 版本 系統(tǒng) YOLOv5 v6.1 Linu

    2024年02月05日
    瀏覽(163)
  • 【YOLOv5】一些不常見的報錯及解決【持續(xù)更新】

    【YOLOv5】一些不常見的報錯及解決【持續(xù)更新】

    目錄 AssertionError: Label class 4 exceeds nc=4 in /xxxxxx解決方法 原因 解決方法:(以我的情況為例) RuntimeError: result type Float can‘t be cast to the desired output type long int 原因 解決方法 ImportError: libgthread-2.0.so.0: cannot open shared object file: tensorboard :No dashboards are active for the current data set. 問題

    2024年02月12日
    瀏覽(23)
  • 【YOLOv5】一些網(wǎng)上找不到答案的報錯解決方案

    【YOLOv5】一些網(wǎng)上找不到答案的報錯解決方案

    目錄 AssertionError: Label class 4 exceeds nc=4 in /xxxxxx解決方法 原因 解決方法:(以我的情況為例) RuntimeError: result type Float can‘t be cast to the desired output type long int 原因 解決方法 ImportError: libgthread-2.0.so.0: cannot open shared object file: tensorboard :No dashboards are active for the current data set. 問題

    2024年02月12日
    瀏覽(25)
  • YOLOv5訓(xùn)練過程中遇到該問題的解決方法ValueError: The requested array has an inhomogeneous shape after 1 dimensions

    YOLOv5訓(xùn)練過程中遇到該問題的解決方法ValueError: The requested array has an inhomogeneous shape after 1 dimensions

    YOLOv5訓(xùn)練時遇到問題ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions.可以參考以下解決方案 問題分析: 數(shù)組append時前后數(shù)組的shape不一致,當(dāng)時我在自己遇到問題時也沒有找到解決方法,最后發(fā)現(xiàn)是訓(xùn)練集中有一個圖片名字太長導(dǎo)致

    2024年02月11日
    瀏覽(22)
  • YOLOV5 訓(xùn)練好模型測試時出現(xiàn)問題:AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘的解決方法

    YOLOV5 訓(xùn)練好模型測試時出現(xiàn)問題:AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘的解決方法

    在使用YOLOV5 訓(xùn)練好模型測試時出現(xiàn)問題:AttributeError: ‘Upsample’ object has no attribute \\\'recompute_scale_factor’的快速解決方法。 解決方法一: 有些博主說降低torchhe和torchvision版本,比如上圖所示我的torch版本1.11.0 torchvision版本0.10.2,torch版本降低到版本1.9.1,torchvision版本降低到版

    2024年02月12日
    瀏覽(25)
  • 解決YOLOV5訓(xùn)練時P、R、mAP等值均為0的問題

    解決YOLOV5訓(xùn)練時P、R、mAP等值均為0的問題

    最近用YOLOV5訓(xùn)練自己的數(shù)據(jù)集,出現(xiàn)了訓(xùn)練失敗的情況,比如box,obj,cls,labels等均為nan或0,找了很多辦法,其實就是cuda與PyTorch版本的問題 我的cuda版本是11.2,PyTorch1.9,可能以前安裝的有問題,重新安裝官網(wǎng)的cuda11.3版本也是沒有解決,可能重置電腦后用11.3的才能跑通,在

    2023年04月08日
    瀏覽(18)
  • 【Yolov5+Deepsort】訓(xùn)練自己的數(shù)據(jù)集(3)| 目標(biāo)檢測&追蹤 | 軌跡繪制 | 報錯分析&解決

    【Yolov5+Deepsort】訓(xùn)練自己的數(shù)據(jù)集(3)| 目標(biāo)檢測&追蹤 | 軌跡繪制 | 報錯分析&解決

    ??前言: 本篇是關(guān)于 如何使用YoloV5+Deepsort訓(xùn)練自己的數(shù)據(jù)集 ,從而實現(xiàn)目標(biāo)檢測與目標(biāo)追蹤,并繪制出物體的運動軌跡。本章講解的為第三部分內(nèi)容:數(shù)據(jù)集的制作、Deepsort模型的訓(xùn)練以及動物運動軌跡的繪制。本文中用到的數(shù)據(jù)集均為自采,實驗動物為斑馬魚。 ??環(huán)境

    2024年02月10日
    瀏覽(26)
  • 訓(xùn)練yolov5的那些事之解決:AssertionError: Label class x exceeds nc=x in data/yolov5.yaml. Possible class label

    Yolov5報錯: AssertionError: Label class x exceeds nc=x in data/yolov5.yaml. Possible class labels are 0-x-1 File “C:Users1Desktop水表識別YOLO5yolov5-mastertrain.py”, line 175, in train assert mlc nc, ‘Label class %g exceeds nc=%g in %s. Possible class labels are 0-%g’ % (mlc, nc, opt.data, nc - 1) 找到train文件的175行: 改成這樣

    2024年02月11日
    瀏覽(162)
  • 【零基礎(chǔ)玩轉(zhuǎn)yolov5】yolov5訓(xùn)練自己的數(shù)據(jù)集(CPU訓(xùn)練+GPU訓(xùn)練)

    【零基礎(chǔ)玩轉(zhuǎn)yolov5】yolov5訓(xùn)練自己的數(shù)據(jù)集(CPU訓(xùn)練+GPU訓(xùn)練)

    ?博主也是最近開始玩yolov5的,甚至也是最近開始使用python的,很多東西都沒有接觸過,因此訓(xùn)練自己的數(shù)據(jù)集花了不少時間,所以想寫篇博客記錄一下,希望同樣是零基礎(chǔ)的小伙伴們可以更加輕松的上手。同時大家如果發(fā)現(xiàn)了錯誤和理解偏差,歡迎指正。 參考資料: Yolo

    2024年02月06日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包