What is VISSL?¶
VISSL is a computer VIsion library for state-of-the-art Self-Supervised Learning research with PyTorch. VISSL aims to accelerate the 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 - XCiT, DINO, SwAV, ConViT, Barlow Twins, 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, inaturalist), full finetuning, semi-supervised benchmark, nearest neighbor benchmark, object detection (Pascal VOC and COCO), and instance retrieval.
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.). These modular components are simple drop-in replacements in yaml config files.
Scalability: Easy to train models on 1-gpu, multi-gpu, and multi-node. Several components for large scale trainings are provided as simple config file options: 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.
We hope that VISSL will democratize self-supervised learning and in turn accelerate advancements in the field. We also hope that it will enable research in important research directions like model generalizability.
Hope you enjoy using VISSL!