Skip to content

OpenMMLab Self-Supervised Learning Toolbox and Benchmark

License

Notifications You must be signed in to change notification settings

Muyun99/mmselfsup

Repository files navigation

PyPI docs badge codecov license

English | 简体中文

Introduction

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.

Major features

  • 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.

License

This project is released under the Apache 2.0 license.

ChangeLog

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.

Benchmark and Model Zoo

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 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

Installation

Please refer to install.md for installation and data_prepare.md for dataset preparation.

Get Started

Please see getting_started.md for the basic usage of MMSelfSup.

We also provides tutorials for more details:

Citation

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}
}

Contributing

We appreciate all contributions improving MMSelfSup. Please refer to CONTRIBUTING.md more details about the contributing guideline.

Acknowledgement

  • 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.

Projects in OpenMMLab

  • 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.

About

OpenMMLab Self-Supervised Learning Toolbox and Benchmark

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 96.2%
  • Shell 3.6%
  • Dockerfile 0.2%