Crude implementation of simCLR paper. Used the LARS
optimizer over the contrastive loss
function as described in the paper to train a contrastive model. Used this model as encoder and added fully connected layer to create a classifier.
Below is the observations for the classifer trained using TAUP and supervised learning.
model | num_samples | accuracy | epochs |
---|---|---|---|
Supervised Learning | 50000 | 97.3 | 103 |
TAUP+Supervised Finetuning | 5000 | 93.5 | 45 |
TAUP+Supervised Finetuning | 10000 | 93.9 | 23 |
TAUP+Supervised Finetuning | 10000 | 95.34 | 45 |
- To train the TAUP model with contrastive loss:
train_taup.py
- To train the clf over the TAUP model :
train_classifier.py
- Test the effect of BatchNormalization in the projection head
- Add the knowledge distilation part
- Test it out on a dataset more complicated than CIFAR
Reference: https://arxiv.org/pdf/2006.10029.pdf