/sesemi

Supervised and semi-supervised image classification with self-supervised regularization.

Primary LanguagePythonApache License 2.0Apache-2.0

Image Classification with Self-Supervised Regularization

Why SESEMI?

SESEMI is an open source image classification library built on PyTorch Lightning. SESEMI enables various modern supervised classifiers to be robust semi-supervised learners based on the principles of self-supervised regularization.

Highlights and Features

  • Integration with the popular PyTorch Image Models (timm) library for access to contemporary, high-performance supervised architectures with optional pretrained ImageNet weights. See the list of recommended backbones
  • Demonstrated utility on large realistic image datasets and is currently competitive on the FastAI Imagenette benchmarks
  • Easy to use out-of-the-box requiring little hyper-parameter tuning across many tasks related to supervised learning, semi-supervised learning, and learning with noisy labels. In most use cases, one only needs to tune the learning rate, batch size, and backbone architecture
  • Simply add unlabeled data for improved image classification without any tricks

Our goal is to expand the utility of SESEMI for the ML/CV practitioner by incorporating the latest advances in self-supervised, semi-supervised, and few-shot learning to boost the accuracy performance of conventional supervised classifiers in the limited labeled data setting. If you find this work useful please star this repo to let us know. Contributions are also welcome!

Documentation

Click here to view the full documentation hosted on readthedocs. For convenience, we have provided links to some of the content below:

Supported Methods

We currently support variants of the following methods:

Built-in Configurations

Config Name Dataset Methods Training Logs
cifar10_wrn_28_10 CIFAR-10 Supervised N/A
cifar10 CIFAR-10 Supervised N/A
cifar100 CIFAR-100 Supervised N/A
imagewang_consistency Imagewang Mean Teacher N/A
imagewang_entmin Imagewang Entropy Minimization N/A
imagewang_fixmatch_randaugment Imagewang FixMatch N/A
imagewang_fixmatch Imagewang FixMatch N/A
imagewang_jigsaw_entmin Imagewang Jigsaw Prediction + Entropy Minimization N/A
imagewang_noisy_student_stage_1 Imagewang Noisy Student N/A
imagewang_noisy_student_stage_n Imagewang Noisy Student N/A
imagewang_rotation_entmin Imagewang Rotation Prediction + Entropy Minimization N/A
imagewang_rotation Imagewang Rotation Prediction N/A
imagewang Imagewang Supervised N/A
imagewoof_entmin Imagewoof Entropy Minimization N/A
imagewoof_rotation Imagewoof Rotation Prediction N/A
imagewoof Imagewoof Supervised N/A
stl10 STL-10 Supervised N/A

Copyright

We have released SESEMI under the permissive Apache 2.0 license. Any contributions made will also be subject to the same licensing.

Citation

If you find this work useful, consider citing the related paper:

@inproceedings{TranSESEMI,
  title="{Exploring Self-Supervised Regularization for Supervised and Semi-Supervised Learning}",
  author={Phi Vu Tran},
  booktitle={NeurIPS Workshop on Learning with Rich Experience: Integration of Learning Paradigms},
  year={2019}
}