AlibabaResearch / efficientteacher

A Supervised and Semi-Supervised Object Detection Library for YOLO Series
GNU General Public License v3.0
820 stars 147 forks source link

训练问题 #88

Open wangsun1996 opened 1 year ago

wangsun1996 commented 1 year ago

我在自己的数据集上一共训练300轮,先进行了150轮有监督训练burn-in,然后进入半监督训练.最终的结果显示300轮时的mAP指标比150高,但我发现在训练过程中,教师模型的mAP一直比学生模型高,大致4个点左右,请问这种情况正常吗? 另外想问一下,在前150轮的burn-in过程中,为什么也会显示两行指标(分别代表教师模型和学生模型?),在burn-in阶段不是只进行有监督训练吗? 149/299 5.29G 340 800 0.04196 0.01833 0.002488 0.1256: 100%|████████████████████████████████████████████████████████████████████████████████████████████| 92/92 [00:15<00:00, 5.86it/s] burn_in_epoch: 150, cur_epoch: 149 Class Images Labels P R mAP@.5 mAP@.5:.95: 100%|████████████████████████████████████████████████████████████████████████████████████| 525/525 [00:23<00:00, 22.46it/s] all 2100 20705 0.771 0.687 0.739 0.388 Class Images Labels P R mAP@.5 mAP@.5:.95: 100%|████████████████████████████████████████████████████████████████████████████████████| 525/525 [00:23<00:00, 22.26it/s] all 2100 20705 0.804 0.68 0.748 0.417

299/299 5.32G 10 800 0.03257 0.01769 0.0006747 0.1019 0.0276 0.02882 0.0008187 0.6584 0 1 36.1 19.46: 100%|██████████| 215/215 [01:35<00:00, 2.25it/s] Class Images Labels P R mAP@.5 mAP@.5:.95: 100%|████████████████████████████████████████████████████████████████████████████████████| 525/525 [00:23<00:00, 22.47it/s] all 2100 20705 0.814 0.791 0.817 0.487 Class Images Labels P R mAP@.5 mAP@.5:.95: 100%|████████████████████████████████████████████████████████████████████████████████████| 525/525 [00:24<00:00, 21.33it/s] all 2100 20705 0.849 0.84 0.867 0.546

           Class     Images     Labels          P          R     mAP@.5 mAP@.5:.95: 100%|████████████████████████████████████████████████████████████████████████████████████| 525/525 [00:25<00:00, 20.24it/s]
             all       2100      20705      0.869       0.82      0.866      0.546
               0       2100      10807      0.911      0.753      0.832      0.483
               1       2100        515      0.778      0.667      0.694      0.338
               2       2100       1218      0.902      0.819       0.89      0.645
               3       2100        289      0.789      0.955      0.963      0.734
               4       2100       3249      0.934       0.89      0.932      0.526
               5       2100       4627      0.899      0.836      0.885      0.551
Bobo-y commented 1 year ago

@wangsun1996 按道理来说teacher进行了ema 会更好一些吧。我有一个疑问,有监督你是否也进行了300轮训练进行对比呢?如果你有监督只训了150epoch,然后在这基础上再burn in, 最终的指标高不一定是伪标签带来的吧

wangsun1996 commented 1 year ago

@wangsun1996 按道理来说teacher进行了ema 会更好一些吧。我有一个疑问,有监督你是否也进行了300轮训练进行对比呢?如果你有监督只训了150epoch,然后在这基础上再burn in, 最终的指标高不一定是伪标签带来的吧

我是从头开始训练的,没有加载预训练模型.在SSOD时,我在没有加预训练模型的情况下,总轮数设为300,其中有监督部分burn_epochs=150,半监督部分150轮.另外,我试过在不加载预训练模型的情况下只进行150轮有监督训练,结果显示不如SSOD在150epoch(结束有监督阶段)和300epoch时(结束半监督阶段)的结果

BowieHsu commented 1 year ago

@wangsun1996 您好,楼上说的是对的,teacher模型因为是student的EMA,实质上是在对student进行集成学习,所以teacher应该是一直比student高的。

halalo513 commented 1 year ago

您好,请问burn-in过程中的两行指标哪个是教师模型的,哪个又是学生模型的呢?在burn-in过程中学生模型就对教师模型进行EMA吗?

Meoooww commented 1 year ago