Rebirth! OpenSelfSup is upgraded to MMSelfSup

OpenMMLab
3 min readDec 17, 2021

--

When it comes to supervised learning, taking image field as an example, we need correspondent images and labels to supervise the training of network. As we know, training neural networks needs a large number of labels, such as the well-known dataset ImageNet1k , which has 1.28 million images. However, labeling such a large amount of data is time-consuming and labor-intensive, especially the data obtain in such data explosion era can be endless. Therefore, how to use the intrinsic information of the image to train the network and to obtain more robust and powerful models is the research topic of self-supervised learning.

Now, based on OpenSelfSup, we are excited to announce MMSelfSup, the new powerful self-supervised learning toolbox based on@PyTorch https://github.com/open-mmlab/mmselfsup

We maintain the modular style of the OpenMMLab projects, including its flexible config pattern and components. Besides, we provide several benchmarks. For example, MMDet and MMSeg are integrated to facilitate users completing the whole process from self-supervised pre-training to downstream task evaluation.

Some highlights:

  • Methods in One Repository: MMSelfSup contains state-of-the-art methods in self-supervised learning and more algorithms are under working, also implementing various practical tools.
  • Modular Design and Flexible Config: MMSelfSup follows a similar code architecture of OpenMMLab projects with modular design and a powerful registry mechanism.
  • 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 with a large number of config files.

Introducing MMSelfSup

The following is the general framework of MMSelfSup.

The logic framework of MMSelfSup is mainly divided into self-supervised training and downstream benchmarks.

The ‘mmselfsup’ folder contains most of the core code, including datasets, related implementations of models, etc. In ‘datasets’, we temporarily retain the frame from OpenSelfSup, loading data from data sources, then building pipelines, and encapsulating them with algorithm-related datasets to deliver training data to training process. In ‘models’, we use backbones, necks, heads, etc. to construct algorithms. Among them, backbone is the pre-training model, neck is used as a training auxiliary structure, and loss is calculated in the corresponding heads. In addition, the hooks and some specific required optimizers are implemented in the ‘core’ folder.

In ‘configs’, we separate ‘selfsup’ for pre-train and ‘benchmarks’ for downstream evaluation. You can flexibly configure the corresponding training settings to perform a series of ablation studies.

Ending

In the field of image self-supervision, the algorithms in the past one or two years can reach the level of supervised learning, which is not as early as the pre-training development of natural language processing. Moreover, at present, image self-supervised learning is more academically explored. With the continuous development of the algorithm, it can promote the continuous progress and improvement of MMSelfSup; at the same time, we also hope that MMSelfSup can make corresponding contributions in this field.

Finally, welcome community to use MMSelfSup and we are appreciating your Star, Issue, PR!

https://github.com/open-mmlab/mmselfsup

--

--

OpenMMLab
OpenMMLab

No responses yet