WongKinYiu / yolor

implementation of paper - You Only Learn One Representation: Unified Network for Multiple Tasks (https://arxiv.org/abs/2105.04206)
GNU General Public License v3.0
1.98k stars 524 forks source link

Cannot reproduce the published performance of YOLOR-P6 after training on COCO #151

Closed LaCandela closed 2 years ago

LaCandela commented 2 years ago

I tried to reproduce the results of YOLOR-P6 on COCO data but somehow I couldn't reach the reported mAP. I could reach 50.79mAP (0.5:0.95) on the 5k validation set while with the provided pretrained weights (yolor-p6-paper-541.pt) I see 54.0mAP on the same validation set. I used the proposed training sequence:

python -m torch.distributed.launch --nproc_per_node 8 --master_port 9527 train.py --weights '' --cfg models/yolor-p6.yaml --data data/coco.yaml --hyp data/hyp.scratch.1280.yaml --epochs 300 --batch-size 64 --img-size 1280 1280 --device 0,1,2,3,4,5,6,7 --sync-bn --name yolor-p6-bs64

python -m torch.distributed.launch --nproc_per_node 8 --master_port 9527 tune.py --weights runs/train/yolor-p6-bs64/weights/last_298.pt --cfg models/yolor-p6.yaml --data data/coco.yaml --hyp data/hyp.finetune.1280.yaml --epochs 450 --batch-size 64 --img-size 1280 1280 --device 0,1,2,3,4,5,6,7 --sync-bn --name yolor-p6-bs64-tune

I used the configuration found in the repo. Does anyone has a clue where did I lose 4mAP?

LaCandela commented 2 years ago

Eventually I coud reach 52.4 which is almost the same as the published 52.5 on the val set. Congratulation! :)

WongKinYiu commented 2 years ago

Yes, because the 54.1% used the training process described in this paper, and the corresponding code is not yet released.

By the way, you could reference to https://github.com/WongKinYiu/yolor/issues/82 to get better results with training only 300 epochs.