NVlabs / AL-SSL

Other
18 stars 2 forks source link

uses of build_ssd in pseudo_labels.py #4

Closed nabi-rony closed 11 months ago

nabi-rony commented 12 months ago

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)

TheRevanchist commented 11 months ago

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.

nabi-rony commented 11 months ago

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