|
1 |
| -# PASSL |
| 1 | +⚙️ English | [简体中文](./README_cn.md) |
| 2 | + |
| 3 | +<p align="center"> |
| 4 | + <img src="./docs/imgs/passl_logo.svg" width="60%" height="60%"/> |
| 5 | +</p> |
| 6 | +<p align="center"> |
| 7 | + <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache%202-red.svg"></a> |
| 8 | + <a href=""><img src="https://img.shields.io/badge/python-3.7+-aff.svg"></a> |
| 9 | + <a href="https://github.com/PaddlePaddle/PASSL/stargazers"><img src="https://img.shields.io/github/stars/PaddlePaddle/PASSL?color=ccf"></a> |
| 10 | + <a href=""><img src="https://camo.githubusercontent.com/abb97269de2982c379cbc128bba93ba724d8822bfbe082737772bd4feb59cb54/68747470733a2f2f63646e2e7261776769742e636f6d2f73696e647265736f726875732f617765736f6d652f643733303566333864323966656437386661383536353265336136336531353464643865383832392f6d656469612f62616467652e737667"></a> |
| 11 | + <a href="https://aistudio.baidu.com/aistudio/personalcenter/thirdview/940489"><img src="https://img.shields.io/badge/Tutorial-AI Studio-blue.svg"></a> |
| 12 | +</p> |
2 | 13 |
|
3 | 14 | ## Introduction
|
| 15 | + |
4 | 16 | PASSL is a Paddle based vision library for state-of-the-art Self-Supervised Learning research with [PaddlePaddle](https://www.paddlepaddle.org.cn/). PASSL aims to accelerate research cycle in self-supervised learning: from designing a new self-supervised task to evaluating the learned representations.
|
5 |
| -- **Reproducible implementation of SOTA in Self-Supervision**: Existing SOTA in Self-Supervision are implemented - [SimCLR](https://arxiv.org/abs/2002.05709), [MoCo(v1)](https://arxiv.org/abs/1911.05722),[MoCo(v2)](https://arxiv.org/abs/1911.05722), [MoCo-BYOL](docs/Train_MoCo-BYOL_model.md), [CLIP](https://arxiv.org/abs/2103.00020). [BYOL](https://arxiv.org/abs/2006.07733) is coming soon. Also supports supervised trainings. |
6 |
| -- **Modular**: Easy to build new tasks and reuse the existing components from other tasks (Trainer, models and heads, data transforms, etc.). |
7 | 17 |
|
8 |
| -## Installation |
9 |
| -- See [INSTALL.md](https://github.com/PaddlePaddle/PASSL/blob/main/docs/INSTALL.md). |
| 18 | +Key features of PASSL: |
| 19 | + |
| 20 | +- Reproducible implementation of SOTA in Self-Supervision |
| 21 | + |
| 22 | + Existing SOTA in Self-Supervision are implemented - [SimCLR](https://arxiv.org/abs/2002.05709), [MoCo(v1)](https://arxiv.org/abs/1911.05722), [MoCo(v2)](https://arxiv.org/abs/1911.05722), [MoCo-BYOL](docs/Train_MoCo-BYOL_model.md), [BYOL](https://arxiv.org/abs/2006.07733), [BEiT](https://arxiv.org/abs/2106.08254). Supervised classification training is also supported. |
| 23 | + |
| 24 | +- Modular Design |
| 25 | + |
| 26 | + Easy to build new tasks and reuse the existing components from other tasks (Trainer, models and heads, data transforms, etc.) |
| 27 | + |
| 28 | +🛠️ The ultimate goal of PASSL is to use self-supervised learning to provide more appropriate pre-training weights for downstream tasks while significantly reducing the cost of data annotation. |
| 29 | + |
| 30 | +**📣 Recent Update:** |
| 31 | + |
| 32 | +* (2022-2-9): Refactoring README |
| 33 | +* 🔥 Now: |
10 | 34 |
|
11 | 35 | ## Implemented Models
|
12 |
| -Benchmark Linear Image Classification on ImageNet-1K |
13 |
| -| | epochs |official results | passl results | Backbone| Model | |
14 |
| -| ---|--- | ---- | ---- | ----| ---- | |
15 |
| -| MoCo | 200 | 60.6| 60.64| ResNet-50 | [download](https://passl.bj.bcebos.com/models/moco_v1_r50_e200_ckpt.pdparams)| |
16 |
| -| SimCLR | 100 | 64.5 | 65.3 | ResNet-50 | [download](https://passl.bj.bcebos.com/models/simclr_r50_ep100_ckpt.pdparams)| |
17 |
| -| MoCo v2 | 200 | 67.7 | 67.72| ResNet-50 | [download](https://passl.bj.bcebos.com/models/moco_v2_r50_e200_ckpt.pdparams)| |
18 |
| -| MoCo-BYOL | 300 | 71.56 | 72.10| ResNet-50 | [download](https://passl.bj.bcebos.com/models/mocobyol_r50_ep300_ckpt.pdparams)| |
19 |
| -| BYOL | 300 | 72.50 | 71.62| ResNet-50 | [download](https://passl.bj.bcebos.com/models/byol_r50_300.pdparams)| |
20 |
| -| PixPro | 100 | 55.1(fp16) | 57.2(fp32) | ResNet-50 | [download](https://passl.bj.bcebos.com/models/pixpro_r50_ep100_no_instance_with_linear.pdparams) |
| 36 | + |
| 37 | +* **Self-Supervised Learning Models** |
| 38 | + |
| 39 | +PASSL implements a series of self-supervised learning algorithms, See **Document** for details on its use |
| 40 | + |
| 41 | +| | Epochs | Official results | PASSL results | Backbone | Model | Document | |
| 42 | +| --------- | ------ | ---------------- | ------------- | --------- | ------------------------------------------------------------ | ------------------------------------------------ | |
| 43 | +| MoCo | 200 | 60.6 | 60.64 | ResNet-50 | [download](https://passl.bj.bcebos.com/models/moco_v1_r50_e200_ckpt.pdparams) | [Train MoCo](docs/Train_MoCo_model.md) | |
| 44 | +| SimCLR | 100 | 64.5 | 65.3 | ResNet-50 | [download](https://passl.bj.bcebos.com/models/simclr_r50_ep100_ckpt.pdparams) | [Train SimCLR](docs/Train_SimCLR_model.md) | |
| 45 | +| MoCo v2 | 200 | 67.7 | 67.72 | ResNet-50 | [download](https://passl.bj.bcebos.com/models/moco_v2_r50_e200_ckpt.pdparams) | [Train MoCo](docs/Train_MoCo_model.md) | |
| 46 | +| MoCo-BYOL | 300 | 71.56 | 72.10 | ResNet-50 | [download](https://passl.bj.bcebos.com/models/mocobyol_r50_ep300_ckpt.pdparams) | [Train MoCo-BYOL](docs/Train_MoCo-BYOL_model.md) | |
| 47 | +| BYOL | 300 | 72.50 | 71.62 | ResNet-50 | [download](https://passl.bj.bcebos.com/models/byol_r50_300.pdparams) | [Train BYOL](docs/Train_BYOL_model.md) | |
| 48 | +| PixPro | 100 | 55.1(fp16) | 57.2(fp32) | ResNet-50 | [download](https://passl.bj.bcebos.com/models/pixpro_r50_ep100_no_instance_with_linear.pdparams) | [Train PixPro](docs/Train_PixPro_model.md) | |
| 49 | + |
| 50 | +> Benchmark Linear Image Classification on ImageNet-1K. |
| 51 | +
|
| 52 | +Comming Soon:More algorithm implementations are already in our plans ... |
| 53 | + |
| 54 | +* **Classification Models** |
| 55 | + |
| 56 | +PASSL implements influential image classification algorithms such as Visual Transformer, and provides corresponding pre-training weights. Designed to support the construction and research of self-supervised, multimodal, large-model algorithms. See [Classification_Models_Guide.md](docs/Classification_Models_Guide.md) for more usage details |
| 57 | + |
| 58 | +| | Detail | Tutorial | |
| 59 | +| ---------------- | --------------------------- | ------------------------------------------------------------ | |
| 60 | +| ViT | / | [PaddleEdu](https://aistudio.baidu.com/aistudio/projectdetail/2293050) | |
| 61 | +| Swin Transformer | / | [PaddleEdu](https://aistudio.baidu.com/aistudio/projectdetail/2280436) | |
| 62 | +| CaiT | [config](configs/cait) | [PaddleFleet](https://aistudio.baidu.com/aistudio/projectdetail/3401469) | |
| 63 | +| T2T-ViT | [config](configs/t2t_vit) | [PaddleFleet](https://aistudio.baidu.com/aistudio/projectdetail/3401348) | |
| 64 | +| CvT | [config](configs/cvt) | [PaddleFleet](https://aistudio.baidu.com/aistudio/projectdetail/3401386) | |
| 65 | +| BEiT | [config](configs/beit) | [unofficial](https://aistudio.baidu.com/aistudio/projectdetail/2417241) | |
| 66 | +| MLP-Mixer | [config](configs/mlp_mixer) | [PaddleFleet](https://aistudio.baidu.com/aistudio/projectdetail/3401295) | |
| 67 | +| ConvNeXt | [config](configs/convnext) | [PaddleFleet](https://aistudio.baidu.com/aistudio/projectdetail/3407445) | |
| 68 | + |
| 69 | +🔥 PASSL provides a detailed dissection of the algorithm, see **Tutorial** for details. |
| 70 | + |
| 71 | +## Installation |
| 72 | + |
| 73 | +See [INSTALL.md](https://github.com/PaddlePaddle/PASSL/blob/main/docs/INSTALL.md). |
21 | 74 |
|
22 | 75 | ## Getting Started
|
| 76 | + |
23 | 77 | Please see [GETTING_STARTED.md](https://github.com/PaddlePaddle/PASSL/blob/main/docs/GETTING_STARTED.md) for the basic usage of PASSL.
|
24 | 78 |
|
25 |
| -## Tutorials |
26 |
| -- [Train SimCLR model](docs/Train_SimCLR_model.md) |
27 |
| -- [Train MoCo(v1,v2) model](docs/Train_MoCo_model.md) |
28 |
| -- [Train MoCo-BYOL model](docs/Train_MoCo-BYOL_model.md) |
29 |
| -- [Train BYOL model](docs/Train_BYOL_model.md) |
30 |
| -- [Train CLIP model](docs/Train_CLIP_model.md) |
31 |
| -- [Train PixPro model](docs/Train_PixPro_model.md) |
| 79 | +## Awesome SSL |
| 80 | + |
| 81 | +Self-Supervised Learning (SSL) is a rapidly growing field, and some influential papers are listed here for research use.PASSL seeks to implement self-supervised algorithms with application potential |
| 82 | + |
| 83 | +* *[Masked Feature Prediction for Self-Supervised Visual Pre-Training](https://arxiv.org/abs/2112.09133)* by Chen Wei, Haoqi Fan, Saining Xie, Chao-Yuan Wu, Alan Yuille, Christoph Feichtenhofer. |
| 84 | +* *[Masked Autoencoders Are Scalable Vision Learners](https://arxiv.org/abs/2111.06377)* by Kaiming He, Xinlei Chen, Saining Xie, Yanghao Li, Piotr Dollár, Ross Girshick. |
| 85 | +* *[Corrupted Image Modeling for Self-Supervised Visual Pre-Training](https://arxiv.org/abs/2202.03382)* by Yuxin Fang, Li Dong, Hangbo Bao, Xinggang Wang, Furu Wei. |
| 86 | +* *[Are Large-scale Datasets Necessary for Self-Supervised Pre-training?](https://arxiv.org/abs/2112.10740)* by Alaaeldin El-Nouby, Gautier Izacard, Hugo Touvron, Ivan Laptev, Hervé Jegou, Edouard Grave. |
| 87 | +* *[PeCo: Perceptual Codebook for BERT Pre-training of Vision Transformers](https://arxiv.org/abs/2111.12710)* by Xiaoyi Dong, Jianmin Bao, Ting Zhang, Dongdong Chen, Weiming Zhang, Lu Yuan, Dong Chen, Fang Wen, Nenghai Yu. |
| 88 | +* *[SimMIM: A Simple Framework for Masked Image Modeling](https://arxiv.org/abs/2111.09886)* by Zhenda Xie, Zheng Zhang, Yue Cao, Yutong Lin, Jianmin Bao, Zhuliang Yao, Qi Dai, Han Hu. |
| 89 | + |
| 90 | +## Contributing |
| 91 | + |
| 92 | +PASSL is still young. It may contain bugs and issues. Please report them in our bug track system. Contributions are welcome. Besides, if you have any ideas about PASSL, please let us know. |
| 93 | + |
| 94 | +## Citation |
| 95 | + |
| 96 | +If PASSL is helpful to your research, feel free to cite |
| 97 | + |
| 98 | +``` |
| 99 | +@misc{=passl, |
| 100 | + title={PASSL: A visual Self-Supervised Learning Library}, |
| 101 | + author={PASSL Contributors}, |
| 102 | + howpublished = {\url{https://github.com/PaddlePaddle/PASSL}}, |
| 103 | + year={2022} |
| 104 | +} |
| 105 | +``` |
| 106 | + |
| 107 | +## License |
| 108 | + |
| 109 | +As shown in the LICENSE.txt file, PASSL uses the Apache 2.0 copyright agreement. |
0 commit comments