YOLOX-入門2-訓練-【Reproduce our results on COCO】

部署的平台:【極鏈AI雲平台】


YOLOX地址:
//github.com/Megvii-BaseDetection/YOLOX

復現YOLOX在COCO數據集的結果

在这里插入图片描述

數據集

在部署平台極鏈AI雲上,有提供數據集,其中就包括coco2017,可以直接用ln語句在自己的YOLOX路徑下建立軟鏈接,使用方便。

在極鏈AI雲提供的coco數據集中,有提示該coco數據集的路徑,可以直接複製過去,替代官方給的示例中的【/path/to/your/COCO】。

在这里插入图片描述

注意

這裡測試的是coco2017數據集,如果你想改其他的coco數據集,可以在/root/YOLOX/yolox/data/datasets/coco.py路徑下,改這個coco.py。

他這裡設置的是instances_train2017.json文件。

還有root/YOLOX/yolox/exp/yolox_base.py文件,如下圖2。

我目前只注意到這兩個,我沒有實際運行過用coco2014的。

在这里插入图片描述在这里插入图片描述

epoch修改

在/root/YOLOX/yolox/exp/yolox_base.py文件中,可以修改epoch數。
原本設定的max_epoch是300。
我自己嘗試的時候,為了更快訓練完,改成了5。

在这里插入图片描述

運行

Python;toolbar:false">cd /root/YOLOX
ln -s /datasets/coco2017 ./datasets/COCO
python tools/train.py -n yolox-s -d 8 -b 64 --fp16 -o


其中,d後是GPU數量,b後是batch size,通常就是GPU數量乘8:
-d: number of gpu devices
-b: total batch size, the recommended number for -b is num-gpu * 8

一開始部落客在平台上創建實例的時候,由於貧窮,GPU數量選擇的是1個。

但是-d 1 -b 8,這樣子的參數,去跑coco2017,大概要跑一輩子。

所以,忍痛充錢,用8GPU的跑。

8GPU的跑5epoch,用時大約43分鐘。

2GPU的跑5epoch,預計用時是 2:16:55。(我就不等了,沒有跑完)


關於增加GPU的數量,現在平台還不能直接升。

可以先創建自定義鏡像,然後再從【數據管理】——【我的鏡像】——找到剛剛自定義創建的鏡像——【創建實例】——改選8個GPU數量

他的官方教程:使用過程中想要增加或減少顯示卡數量,更換顯示卡型號怎麼辦?

或者重新從安裝開始來一次,這樣可能報錯更少,更順利。


訓練過程

下面這個只是某一時刻的,運行一段時間後GPU-Util比較平均。


在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

訓練結束

訓練結束,在YOLOX_outputs/yolox_s/目錄下產生了新的權重文件。

將events.out.tfevents這兩個文件copy到data-output路徑下,再打開tensorboard,就可以查看訓練結果的可視化展示。

在雲平台上操作的教程:TensorBoard 使用


在这里插入图片描述在这里插入图片描述

結果對比

為了保持繼續深入學習的高漲的熱情,建立了一個帥哥測試數據集。

今天隨手測了最近看的一個韓劇的片段。

分別用yolox_m模型,和本篇部落格中只訓練5個epoch的/root/YOLOX/YOLOX_outputs/yolox_s/best_ckpt.pth.tar模型,運行同一段影片。


只訓練了40多分鐘,5個epoch的模型,全程只能識別出person這個類別,而且當人背向鏡頭的時候,識別他為人的概率只有50%左右。

所以這個就不放截圖了。


官方給的yolox_m模型就效果好很多。能識別出很多小物體。

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述


Tags: