Haochen-Wang409 / U2PL

[CVPR'22 & IJCV'24] Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels & Using Unreliable Pseudo-Labels for Label-Efficient Semantic Segmentation
Apache License 2.0
436 stars 61 forks source link

AEL分支中model_teacher.eval()疑惑 #154

Closed wade0604 closed 1 year ago

wade0604 commented 1 year ago

您好! 请问在With_AEL分支下的train.py中第498行为什么需要加model_teacher.eval(),我看了AEL的官方代码在model_teacher foward时并没有设置eval模式,请问下这个影响会很大吗?

Haochen-Wang409 commented 1 year ago

因为我们在 560 行加入了 model_teacher.train(),为了让 teacher 模型自行更新 BN 的参数。因此,在推理伪标签时需要加上 model_teacher.eval()

我们当时做过实验,论文中报的复现 AEL 的精度,就是我们的 code 不加 U2PL loss 的结果。

您可以尝试把 train 和 eval 都删除,做一些消融实验。