NVlabs/AL-SSL

uses of build_ssd in pseudo_labels.py

nabi-rony opened this issue · 2 comments

Could you please clarify why you used build_ssd instead of using build_ssd_con from csd.py?

https://github.com/NVlabs/AL-SSL/blob/main/pseudo_labels.py on line 39: net = build_ssd('test', 300, num_classes)

csd and ssd are almost the same thing. ssd is essentially an object detector, while csd is the same detector, but uses an image and its flipped version, and next to the ssd loss (MultiBox loss) it also has the consistency loss.

For pseudo-labeling, we only need the prediction of the network, so no need to do two forward passes (one for the original image and one for the flipped version), we just pass the original image and gets its prediction. I guess it might be possible to do the same with csd (pass the original image and its augmented version, get their predictions and possibly average them), but I think it is cleaner to just use ssd.

Bear in mind, that csd and ssd are the exact same network, so a network trained on csd can be used on ssd (and vice versa). Their only differences are the way how they proceed images and the loss function on top of them.

Thank you so much for the reply. That makes sense.