Awesome
<img src=".github/logo/Logo_Color_Light_BG.png" width="900"/>What's New
Below we share, in reverse chronological order, the updates and new releases in VISSL. All VISSL releases are available here.
- [Feb 2022]: Releasing SEER 10B parameters model implementation and model weights.
- [Feb 2022]: Releasing implementation of Fairness Benchmarks for computer vision models proposed in the paper.
- [Jan 2022]: Implementation for Geolocalization test (gps prediction for an image) released in VISSL.
- [Jan 2022]: Add BEiT transformer implementation and ClassyVision ViT.
- [Nov 2021]: Vissl Release 0.1.6 We have released a new version of VISSL. Please see our release notes for more information.
- [Oct 2021]: AugLy data augmentations support introduced in this commit.
- [Oct 2021]: XCiT: Cross-Covariance Image Transformers code released in this commit.
- [Sept 2021]: VISSL master branch renamed to main in this PR in VISSL.
- [August 2021]: Instance Retrieval benchmark implemented and available in VISSL.
- [July 2021]: Fully Sharded Data Parallel integrated in VISSL and announced in blog.
- [May 2021]: DINO: Emerging Properties in Self-Supervised Vision Transformers code released.
- [May 2021]: VISSL relicensed under MIT License.
- [May 2021]: Barlow Twins: Self-Supervised Learning via Redundancy Reduction code released.
- [April 2021]: ConViT: Improving Vision Transformers with Soft Convolutional Inductive Biases code released.
- [March 2021]: Added most benchmark datasets used in VTAB and CLIP benchmark tasks.
- [February 2021]: Added Vision Transformers (ViT) backbone and training self-supervision with ViT.
- [January 2021]: VISSL v0.1.5 released.
Introduction
VISSL is a computer VIsion library for state-of-the-art Self-Supervised Learning research with PyTorch. VISSL aims to accelerate research cycle in self-supervised learning: from designing a new self-supervised task to evaluating the learned representations. Key features include:
-
Reproducible implementation of SOTA in Self-Supervision: All existing SOTA in Self-Supervision are implemented - SwAV, SimCLR, MoCo(v2), PIRL, NPID, NPID++, DeepClusterV2, ClusterFit, RotNet, Jigsaw. Also supports supervised trainings.
-
Benchmark suite: Variety of benchmarks tasks including linear image classification (places205, imagenet1k, voc07, food, CLEVR, dsprites, UCF101, stanford cars and many more), full finetuning, semi-supervised benchmark, nearest neighbor benchmark, object detection (Pascal VOC and COCO).
-
Ease of Usability: easy to use using yaml configuration system based on Hydra.
-
Modular: Easy to design new tasks and reuse the existing components from other tasks (objective functions, model trunk and heads, data transforms, etc.). The modular components are simple drop-in replacements in yaml config files.
-
Scalability: Easy to train model on 1-gpu, multi-gpu and multi-node. Several components for large scale trainings provided as simple config file plugs: Activation checkpointing, ZeRO, FP16, LARC, Stateful data sampler, data class to handle invalid images, large model backbones like RegNets, etc.
-
Model Zoo: Over 60 pre-trained self-supervised model weights.
Installation
See INSTALL.md
.
Getting Started
Install VISSL by following the installation instructions. After installation, please see Getting Started with VISSL and the Colab Notebook to learn about basic usage.
Documentation
Learn more about VISSL at our documentation. And see the projects/ for some projects built on top of VISSL.
Tutorials
Get started with VISSL by trying one of the Colab tutorial notebooks.
- Train SimCLR on 1-gpu
- Extracting Features from a pretrained model
- Benchmark task: Full finetuning on ImageNet-1K
- Benchmark task: Linear image classification on ImageNet-1K
- Large scale training (fp16, LARC, ZeRO)
- Using a pre-trained model in inference mode
Model Zoo and Baselines
We provide a large set of baseline results and trained models available for download in the VISSL Model Zoo.
Contributors
VISSL is written and maintained by the Facebook AI Research.
Development
We welcome new contributions to VISSL and we will be actively maintaining this library! Please refer to CONTRIBUTING.md
for full instructions on how to run the code, tests and linter, and submit your pull requests.
License
VISSL is released under MIT license.
Citing VISSL
If you find VISSL useful in your research or wish to refer to the baseline results published in the Model Zoo, please use the following BibTeX entry.
@misc{goyal2021vissl,
author = {Priya Goyal and Quentin Duval and Jeremy Reizenstein and Matthew Leavitt and Min Xu and
Benjamin Lefaudeux and Mannat Singh and Vinicius Reis and Mathilde Caron and Piotr Bojanowski and
Armand Joulin and Ishan Misra},
title = {VISSL},
howpublished = {\url{https://github.com/facebookresearch/vissl}},
year = {2021}
}