simclr
SimCLRv2 - Big Self-Supervised Models are Strong Semi-Supervised Learners
SimCLR is a research project from Google that explores a technique for training image-recognition models using very few labeled examples. The core idea is that a model can learn useful visual representations by comparing pairs of images, without needing a human to label every image up front. This approach is called self-supervised or contrastive learning.
The way it works is that the system takes two different altered versions of the same image, such as a cropped version and a color-shifted version, and trains the model to recognize that these two views came from the same original image. By doing this across many image pairs, the model develops an internal understanding of what makes images visually similar. Once this training is done, you can then fine-tune the model on a much smaller set of labeled images and still get strong results.
The repository includes code and pre-trained model weights for both the original SimCLR and its follow-up SimCLRv2. SimCLRv2 specifically focused on showing that larger models trained this way can become very capable with only 1% or 10% of labels, which is significantly less data than traditional approaches require. Pre-trained checkpoints in multiple sizes are available for download from Google Cloud Storage.
The code is written in Python using TensorFlow and supports both TensorFlow v1 and v2. Training at full scale requires access to Google Cloud TPUs and large amounts of storage, but the repository also supports training on a single GPU with smaller datasets like CIFAR-10 for experimentation.
This is a research codebase, not a packaged product. It is intended for machine learning researchers and practitioners who want to experiment with or build on the contrastive learning methods described in the accompanying academic papers.