復現基於Pytorch的YOLOv3所踩的坑~


先上圖!

十天+兩台電腦才摸索出來的~~!

環境:

Ubuntu18.04+RTX3090+CUDA11.0+Cudnn v8+Pytorch-nightly

沒錯,是3090!(手動滑稽)

第一個坑:Windows(尤其是Win7)屬實不行,Pytorch裝不上,另外3090只能搭配Pytorch-nightly版本,而且這個版本沒有國內源。

如果你的下載源是國內的,還要恢復默認源才可以。

復現的代碼選擇是github上6k star的那個。

數據集選擇COCO2017數據集(后續會介紹)

說實話,一開始老是報錯,我還以為是代碼的問題,事實上是菜罷了。(要不是身邊的人說,肯定是你的問題,我真的不確定會不會繼續搞下去)

ctrl+v

然后就會有第一個錯誤(大概意思就是downloading weights...),如果你的電腦不能FQ,那么在2分鍾之后就會報錯,下載失敗,然后運行失敗(FQ的電腦能不能繼續運行我不清楚,如果能運行,那么每次運行程序都要下載一次)。

錯誤的原因是:weights文件夾下的download_yolov3_weights.sh文件,每次運行程序都會去執行這個文件。

解決:預先下載好weights放到weights文件夾下,just like this

解決之后繼續運行,會報第二個錯誤(找不到文件夾coco.2017.txt....)

錯誤的原因就在數據集了。

下載的coco2017數據集約(30G)包括train_2017,val_2017約20G的圖片,和annotations_trainval2017的label。

需要對label處理一下,解壓的label你會發現並不是真正的標簽,而是6個json文件,6個json文件分別是描述圖片(看圖說話)、人體關鍵點檢測和目標檢測的訓練json和測試json。

程序中是讀的txt,所以要對json文件進行處理,以目標檢測為例:

json-->xml-->txt(這是我的代碼,好像json可以直接到txt?)

每份json文件會得到兩個txt,分別是包含圖片名稱的txt和包含標簽的txt(分類和box 坐標)

 

 

這里修改包含圖片名稱的txt文件位置。

重點來了!!!

要把包含標簽的txt復制到訓練圖片train_2017中,不然會報錯(找不到label...)

然后繼續運行...

success!

以3090的算力單次運行train為30分鍾左右,300個循環共花了7天~

 

 確實值得紀念~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM