CSL-YOLO icon indicating copy to clipboard operation
CSL-YOLO copied to clipboard

關於精度和速度方面的問題

Open wuminjie12 opened this issue 3 years ago • 4 comments

作者你好,我在rtx3090上測試了一下fps,發現只能跑到二三十幀,yolo4tiny能達到一百五六十幀,是不是我設置方面有錯誤? 還有精度,我訓練了自己的數據集,用224224的初始模型,訓練了200個epoch,每個epoch是 batch=16,step=46,因爲訓練集就700多張圖片,但是最後map只有66%,我用tiny能達到94%,後來我用512512的跑了50個epoch準確率直接為0。。。標簽方面位置信息是雙精度的,這一點可能和你給的有差別,其他應該都差不多

wuminjie12 avatar Jul 18 '21 11:07 wuminjie12

第一個問題其實是FLOPs跟FPS並非正相關,FPS受到實現方法、環境等具體實作方法的影響,FLOPs則是模型理論上的每秒浮點數運算次數,這個數字比較利於學術上的比較,另外就是我是純粹的TF實現與YOLOv4用C+CUDA的實現方式在GPU的速度上會差很多,如果你在純CPU環境下運行就會發現不一樣的結果,簡而言之,如果要更快的工業應用上的速度,現在這個實現方法是不夠的。需要有進一步高效的實作方法。

第二個問題需要你提供更多訊息,尤其是json檔案的格式,包括bbox的表示方式?還有是否有採用預設的學習率下降策略?

D0352276 avatar Jul 18 '21 12:07 D0352276

標簽格式如下:{"bboxes": [[593.6247345, 836.2085900000001, 495.9993290000001, 233.00041999999996, 1.0, "1"], [34.62440799999999, 658.21017, 447.999286, 206.9991000000001, 1.0, "1"], [815.6251424999999, 462.21044000000006, 688.9999549999999, 87.99907999999994, 1.0, "0"], [793.6226829999999, 1088.20736, 629.9982640000002, 76.99867999999992, 1.0, "0"], [789.6233764999998, 1354.21001, 584.9995830000001, 84.99766, 1.0, "0"]]} 關於降學習率,優化器這麽設置的應該沒有衰減optimizer=tf.keras.optimizers.Adam(learning_rate=lr),但是我按照程序的設置,分了三組epoch進行訓練,每次衰減10倍,初始學習率為0.001

wuminjie12 avatar Jul 18 '21 12:07 wuminjie12

你的bbox前兩位數是bbox的左上xy還是中心點xy?我採用的是左上xy,這點需要注意,其他應沒問題。 你可以試試看將csl_yolo.py的中的388行的focal loss註解掉,換成389行的loss,我有發現有時候訓練很不穩定,換完之後再訓練512的試看看:

cnfd_loss=self._ConfidenceFocalLoss(pred_y,true_mask,ignore_mask,true_wht)

換成

cnfd_loss=self._ConfidenceLoss(pred_y,true_mask,ignore_mask,true_wht)

D0352276 avatar Jul 18 '21 12:07 D0352276

好的謝謝

wuminjie12 avatar Jul 18 '21 13:07 wuminjie12