PatrickHua / SimSiam

A pytorch implementation for paper 'Exploring Simple Siamese Representation Learning'
MIT License
814 stars 135 forks source link

For SimSiam, should be evaluation after backbone or encoder? #25

Closed RealNewNoob closed 3 years ago

RealNewNoob commented 3 years ago

I checked the linear_eval.py and noticed only the backbone is imported during the evaluation; this should be correct for SimCl. However, I think the learned representation in SimSiam should be the p after the encoder, which includes the backbone and projector. This might be the reason that others claim performance doesn't meet the original paper.

PatrickHua commented 3 years ago

I evaluated the projector output. It's two points lower than the backbone output.

It also feels like cheating when you can use extra layers for evaluation.