MMSelfSup is an open source self-supervised representation learning toolbox based on PyTorch. It is a part of the OpenMMLab project.
The master branch works with PyTorch 1.8 or higher.
Methods All in One
MMSelfsup provides state-of-the-art methods in self-supervised learning. For comprehensive comparison in all benchmarks, most of the pre-training methods are under the same setting.
Modular Design
MMSelfSup follows a similar code architecture of OpenMMLab projects with modular design, which is flexible and convenient for users to build their own algorithms.
Standardized Benchmarks
MMSelfSup standardizes the benchmarks including logistic regression, SVM / Low-shot SVM from linearly probed features, semi-supervised classification, object detection and semantic segmentation.
Compatibility
Since MMSelfSup adopts similar design of modulars and interfaces as those in other OpenMMLab projects, it supports smooth evaluation on downstream tasks with other OpenMMLab projects like object detection and segmentation.
MMSelfSup v1.0.0 was released based on main
branch. Please refer to Migration Guide for more details.
MMSelfSup v1.0.0 was released in 06/04/2023.
PixMIM
.DINO
in projects/dino/
.MMSelfSup v1.0.0rc6 was released in 10/02/2023.
MaskFeat
with video dataset in projects/maskfeat_video/
MMSelfSup v1.0.0rc5 was released in 30/12/2022.
BEiT v2
, MixMIM
, EVA
.ShapeBias
for model analysisPlease refer to Changelog for details and release history.
Differences between MMSelfSup 1.x and 0.x can be found in Migration.
MMSelfSup depends on PyTorch, MMCV, MMEngine and MMClassification.
Please refer to Installation for more detailed instruction.
For tutorials, we provide User Guides for basic usage:
Pretrain
Downetream Tasks
Useful Tools
Advanced Guides and Colab Tutorials are also provided.
Please refer to FAQ for frequently asked questions.
Please refer to Model Zoo.md for a comprehensive set of pre-trained models and benchmarks.
Supported algorithms:
More algorithms are in our plan.
Benchmarks | Setting |
---|---|
ImageNet Linear Classification (Multi-head) | Goyal2019 |
ImageNet Linear Classification (Last) | |
ImageNet Semi-Sup Classification | |
Places205 Linear Classification (Multi-head) | Goyal2019 |
iNaturalist2018 Linear Classification (Multi-head) | Goyal2019 |
PASCAL VOC07 SVM | Goyal2019 |
PASCAL VOC07 Low-shot SVM | Goyal2019 |
PASCAL VOC07+12 Object Detection | MoCo |
COCO17 Object Detection | MoCo |
Cityscapes Segmentation | MMSeg |
PASCAL VOC12 Aug Segmentation | MMSeg |
We appreciate all contributions improving MMSelfSup. Please refer to Contribution Guides for more details about the contributing guideline.
MMSelfSup is an open source project that is contributed by researchers and engineers from various colleges and companies. We appreciate all the contributors who implement their methods or add new features, as well as users who give valuable feedbacks. We wish that the toolbox and benchmark could serve the growing research community by providing a flexible toolkit to reimplement existing methods and develop their own new algorithms.
MMSelfSup originates from OpenSelfSup, and we appreciate all early contributions made to OpenSelfSup. A few contributors are listed here: Xiaohang Zhan (@XiaohangZhan), Jiahao Xie (@Jiahao000), Enze Xie (@xieenze), Xiangxiang Chu (@cxxgtxy), Zijian He (@scnuhealthy).
If you use this toolbox or benchmark in your research, please cite this project.
@misc{mmselfsup2021,
title={{MMSelfSup}: OpenMMLab Self-Supervised Learning Toolbox and Benchmark},
author={MMSelfSup Contributors},
howpublished={\url{https://github.com/open-mmlab/mmselfsup}},
year={2021}
}
This project is released under the Apache 2.0 license.