Understanding & Implementing SimCLR - an ELI5 guide
I explain the SimCLR and its contrastive loss function step by step, build image embeddings and then show how to use them to train image classifier on top.
deep-learning computer-vision pytorch self-supervised-learning unsupervised-learning article dataset code notebook simclr embeddings tutorial

I explore SimCLR pre-training framework proposed by Google in arXiv:2002.05709 paper. I explain the SimCLR and its contrastive loss function step by step, starting from naive implementation followed by faster, vectorized one. Then I show how to use SimCLR’s pretraining routine to first build image embeddings using EfficientNet network architecture and finally how to build classifier on top of it.

This post covers:

  • understanding the SimCLR framework
  • from scratch explanation & implementation of SimCLR’s loss function (NT-Xent) in PyTorch
  • pre-training image embeddings using EfficientNet architecture
  • training classifier by using transfer learning from the pre-trained embeddings

Don't forget to tag @marrrcin in your comment, otherwise they may not be notified.

Authors original post
Data Engineer / Machine Learning Engineer @ Egnyte
Share this project
Similar projects
VPSNet for Video Panoptic Segmentation
Video panoptic segmentation by generating consistent panoptic segmentation as well as an association of instance ids across video frames.
Image Caption Generation
Image Caption Generation is a challenging task where a textual description is generated given a picture. It needs both methods from Computer Vision and ...
MedicalZoo PyTorch
A pytorch-based deep learning framework for multi-modal 2D/3D medical image segmentation
Computer Vision Pretrained Models
A collection of computer vision pre-trained models.