English | 简体中文
MMSelfSup
is an open source unsupervised representation learning toolbox based on PyTorch. It is a part of the OpenMMLab project.
The master branch works with PyTorch 1.5 or higher.
-
Methods in one repository
MMSelfsup provides state-of-the-art methods in self-supervised learning. For comprehensive comparison in all benchmarks, most of the pretraining 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.
This project is released under the Apache 2.0 license.
MMSelfSup
v0.4.0 was released with refactor in 13/12/2021.
Please refer to changelog.md for details and release history.
A comparison between MMSelfSup and OpenSelfSup codebases can be found in compatibility.md.
Please refer to model_zoo.md for a comprehensive set of pre-trained models and benchmarks.
Supported algorithms:
- Relative Location (ICCV'2015)
- Rotation Prediction (ICLR'2018)
- DeepCLuster (ECCV'2018)
- NPID (CVPR'2018)
- ODC (CVPR'2020)
- MoCo v1 (CVPR'2020)
- SimCLR (ICML'2020)
- MoCo v2 (ArXiv'2020)
- BYOL (NeurIPS'2020)
- SwAV (NeurIPS'2020)
- DenseCL (CVPR'2021)
- SimSiam (CVPR'2021)
More algorithms are in our plan.
Benchmarks | Setting | Remarks |
---|---|---|
ImageNet Linear Classification (Multi-head) | Goyal2019 | Evaluate different layers. |
ImageNet Linear Classification | Evaluate the last layer after global pooling, integrate several settings from different papers | |
ImageNet Semi-Sup Classification | ||
Places205 Linear Classification (Multi-head) | Goyal2019 | Evaluate different layers. |
iNaturalist 2018 Classification | MoCo | End-to-End Fine-tune |
PASCAL VOC07 SVM | Goyal2019 | Costs="1.0,10.0,100.0" to save evaluation time w/o change of results. |
PASCAL VOC07 Low-shot SVM | Goyal2019 | Costs="1.0,10.0,100.0" to save evaluation time w/o change of results. |
PASCAL VOC07+12 Object Detection | MoCo | |
COCO17 Object Detection | MoCo | |
Cityscapes Segmentation | MMSeg | |
PASCAL VOC12 Aug Segmentation | MMSeg |
Please refer to install.md for installation and data_prepare.md for dataset preparation.
Please see getting_started.md for the basic usage of MMSelfSup.
We also provides tutorials for more details:
- config
- add new dataset
- data pipeline
- add new module
- customize schedules
- customize runtime
- benchmarks
If you find this project useful in your research, please consider cite:
@misc{mmselfsup2021,
title={OpenMMLab's Unsupervised Representation Learning Toolbox and Benchmark},
author={MMSelfSup Contributors},
howpublished={\url{https://github.com/open-mmlab/mmselfsup}},
year={2021}
}
We appreciate all contributions improving MMSelfSup. Please refer to CONTRIBUTING.md more details about the contributing guideline.
- The implementation of MoCo and the detection benchmark borrow the code from MoCo.
- The implementation of SwAV borrow the code from SwAV.
- The SVM benchmark borrows the code from fair_self_supervision_benchmark.
mmselfsup/utils/clustering.py
is borrowed from deepcluster.
- MMCV: OpenMMLab foundational library for computer vision.
- MIM: MIM Installs OpenMMLab Packages.
- MMClassification: OpenMMLab image classification toolbox and benchmark.
- MMDetection: OpenMMLab detection toolbox and benchmark.
- MMDetection3D: OpenMMLab's next-generation platform for general 3D object detection.
- MMSegmentation: OpenMMLab semantic segmentation toolbox and benchmark.
- MMAction2: OpenMMLab's next-generation action understanding toolbox and benchmark.
- MMTracking: OpenMMLab video perception toolbox and benchmark.
- MMPose: OpenMMLab pose estimation toolbox and benchmark.
- MMEditing: OpenMMLab image and video editing toolbox.
- MMOCR: OpenMMLab toolbox for text detection, recognition and understanding.
- MMGeneration: OpenMMlab toolkit for generative models.
- MMFlow: OpenMMLab optical flow toolbox and benchmark.
- MMFewShot: OpenMMLab few shot learning toolbox and benchmark.
- MMHuman3D: OpenMMLab 3D human parametric model toolbox and benchmark.