Giter Site home page Giter Site logo

openselfsup's Introduction

OpenSelfSup

News OpenSelfSup now supports BYOL!

Introduction

The master branch works with PyTorch 1.1 or higher.

OpenSelfSup is an open source unsupervised representation learning toolbox based on PyTorch.

What does this repo do?

Below is the relations among Unsupervised Learning, Self-Supervised Learning and Representation Learning. This repo focuses on the shadow area, i.e., Unsupervised Representation Learning. Self-Supervised Representation Learning is the major branch of it. Since in many cases we do not distingush between Self-Supervised Representation Learning and Unsupervised Representation Learning strictly, we still name this repo as OpenSelfSup.

Major features

  • All methods in one repository

    For comprehensive comparison in all benchmarks, refer to MODEL_ZOO.md. Most of the selfsup pretraining methods are under the batch_size=256, epochs=200 setting.

    MethodVOC07 SVM (best layer)ImageNet (best layer)
    ImageNet87.1776.17
    Random30.5416.21
    Relative-Loc64.7849.31
    Rotation-Pred67.3854.99
    DeepCluster74.2657.71
    NPID74.5056.61
    ODC78.4257.70
    MoCo79.1860.60
    MoCo v284.0566.72
    SimCLR78.9561.57
    BYOL (bs4096)85.1069.14
  • Flexibility & Extensibility

    OpenSelfSup follows a similar code architecture of MMDetection while is even more flexible than MMDetection, since OpenSelfSup integrates various self-supervised tasks including classification, joint clustering and feature learning, contrastive learning, tasks with a memory bank, etc.

    For existing methods in this repo, you only need to modify config files to adjust hyper-parameters. It is also simple to design your own methods, please refer to GETTING_STARTED.md.

  • Efficiency

    All methods support multi-machine multi-gpu distributed training.

  • Standardized Benchmarks

    We standardize the benchmarks including logistic regression, SVM / Low-shot SVM from linearly probed features, semi-supervised classification, and object detection. Below are the setting of these benchmarks.

    Benchmarks Setting Remarks
    ImageNet Linear Classification (Multi) goyal2019scaling Evaluate different layers.
    ImageNet Linear Classification (Last) MoCo Evaluate the last layer after global pooling.
    Places205 Linear Classification goyal2019scaling Evaluate different layers.
    ImageNet Semi-Sup Classification
    PASCAL VOC07 SVM goyal2019scaling Costs="1.0,10.0,100.0" to save evaluation time w/o change of results.
    PASCAL VOC07 Low-shot SVM goyal2019scaling 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

Change Log

Please refer to CHANGELOG.md for details and release history.

[2020-06-26] OpenSelfSup v0.2.0 is released with benchmark results and support of new features.

[2020-06-16] OpenSelfSup v0.1.0 is released.

Installation

Please refer to INSTALL.md for installation and dataset preparation.

Get Started

Please see GETTING_STARTED.md for the basic usage of OpenSelfSup.

Benchmark and Model Zoo

Please refer to MODEL_ZOO.md for for a comprehensive set of pre-trained models and benchmarks.

License

This project is released under the Apache 2.0 license.

Acknowledgement

  • This repo borrows the architecture design and part of the code from MMDetection.
  • The implementation of MoCo and the detection benchmark borrow the code from moco.
  • The SVM benchmark borrows the code from fair_self_supervision_benchmark.
  • openselfsup/third_party/clustering.py is borrowed from deepcluster.

Contact

This repo is currently maintained by Xiaohang Zhan (@XiaohangZhan) and Jiahao Xie (@Jiahao000).

openselfsup's People

Contributors

jiahao000 avatar liuziwei7 avatar xiaohangzhan avatar xieenze avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.