diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..2a023629 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,5 @@ +include requirements/*.txt +include mmselfsup/VERSION +include mmselfsup/.mim/model-index.yml +recursive-include mmselfsup/.mim/configs *.py *.yml +recursive-include mmselfsup/.mim/tools *.sh *.py diff --git a/configs/selfsup/byol/metafile.yml b/configs/selfsup/byol/metafile.yml new file mode 100644 index 00000000..e6374786 --- /dev/null +++ b/configs/selfsup/byol/metafile.yml @@ -0,0 +1,28 @@ +Collections: + - Name: BYOL + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - LARS + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + - BYOL + Paper: + URL: https://arxiv.org/abs/2006.07733 + Title: "Bootstrap your own latent: A new approach to self-supervised Learning" + README: configs/selfsup/byol/README.md + +Models: + - Name: byol_resnet50_8xb32-accum16-coslr-200e_in1k + In Collection: BYOL + Metadata: + Epochs: 200 + Batch Size: 256 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 67.68 + Config: configs/selfsup/byol/byol_resnet50_8xb32-accum16-coslr-200e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/byol/byol_resnet50_8xb32-accum16-coslr-200e_in1k_20211213-30dbaef1.pth diff --git a/configs/selfsup/deepcluster/metafile.yml b/configs/selfsup/deepcluster/metafile.yml new file mode 100644 index 00000000..ce343567 --- /dev/null +++ b/configs/selfsup/deepcluster/metafile.yml @@ -0,0 +1,29 @@ +Collections: + - Name: DeepCluster + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - SGD with Momentum + - Weight Decay + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + - DeepCluster + Paper: + URL: https://arxiv.org/abs/1807.05520 + Title: "Deep clustering for unsupervised learning of visual features" + README: configs/selfsup/deepcluster/README.md + +Models: + - Name: deepcluster-sobel_resnet50_8xb64-steplr-200e_in1k + In Collection: DeepCluster + Metadata: + Epochs: 200 + Batch Size: 512 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 46.92 + Config: configs/selfsup/deepcluster/deepcluster-sobel_resnet50_8xb64-steplr-200e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/deepcluster/deepcluster-sobel_resnet50_8xb64-steplr-200e_in1k-bb8681e2.pth diff --git a/configs/selfsup/densecl/metafile.yml b/configs/selfsup/densecl/metafile.yml new file mode 100644 index 00000000..99397045 --- /dev/null +++ b/configs/selfsup/densecl/metafile.yml @@ -0,0 +1,28 @@ +Collections: + - Name: DenseCL + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - SGD with Momentum + - Weight Decay + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + Paper: + URL: https://arxiv.org/abs/2011.09157 + Title: "Dense contrastive learning for self-supervised visual pre-training" + README: configs/selfsup/densecl/README.md + +Models: + - Name: densecl_resnet50_8xb32-coslr-200e_in1k + In Collection: DenseCL + Metadata: + Epochs: 200 + Batch Size: 256 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 63.34 + Config: configs/selfsup/densecl/densecl_resnet50_8xb32-coslr-200e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/densecl/densecl_resnet50_8xb32-coslr-200e_in1k_20211214-1efb342c.pth diff --git a/configs/selfsup/moco/metafile.yml b/configs/selfsup/moco/metafile.yml new file mode 100644 index 00000000..be633471 --- /dev/null +++ b/configs/selfsup/moco/metafile.yml @@ -0,0 +1,32 @@ +Collections: + - Name: MoCo + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - SGD with Momentum + - Weight Decay + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + - MoCo + Paper: + URL: https://arxiv.org/abs/1911.05722 + Title: "Momentum Contrast for Unsupervised Visual Representation Learning" + README: configs/selfsup/moco/README.md + +Models: + - Name: mocov2_resnet50_8xb32-coslr-200e_in1k + In Collection: MoCo + Metadata: + Epochs: 200 + Batch Size: 256 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 67.56 + Config: configs/selfsup/moco/mocov2_resnet50_8xb32-coslr-200e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/moco/mocov2_resnet50_8xb32-coslr-200e_in1k_20211213-7ce8f840.pth + Paper: + URL: https://arxiv.org/abs/2003.04297 + Title: "Improved Baselines with Momentum Contrastive Learning" diff --git a/configs/selfsup/npid/metafile.yml b/configs/selfsup/npid/metafile.yml new file mode 100644 index 00000000..739bbbe9 --- /dev/null +++ b/configs/selfsup/npid/metafile.yml @@ -0,0 +1,29 @@ +Collections: + - Name: NPID + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - SGD with Momentum + - Weight Decay + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + - NPID + Paper: + URL: https://arxiv.org/abs/1805.01978 + Title: "Unsupervised Feature Learning via Non-Parametric Instance Discrimination" + README: configs/selfsup/npid/README.md + +Models: + - Name: npid_resnet50_8xb32-steplr-200e_in1k + In Collection: NPID + Metadata: + Epochs: 200 + Batch Size: 256 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 58.16 + Config: configs/selfsup/npid/npid_resnet50_8xb32-steplr-200e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/npid/npid_resnet50_8xb32-steplr-200e_in1k_20211213-b5fec6df.pth diff --git a/configs/selfsup/odc/metafile.yml b/configs/selfsup/odc/metafile.yml new file mode 100644 index 00000000..d5dff6ca --- /dev/null +++ b/configs/selfsup/odc/metafile.yml @@ -0,0 +1,28 @@ +Collections: + - Name: ODC + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - SGD with Momentum + - Weight Decay + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + Paper: + URL: https://arxiv.org/abs/2006.10645 + Title: "Online deep clustering for unsupervised representation learning" + README: configs/selfsup/odc/README.md + +Models: + - Name: odc_resnet50_8xb64-steplr-440e_in1k + In Collection: ODC + Metadata: + Epochs: 200 + Batch Size: 512 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 53.42 + Config: configs/selfsup/odc/odc_resnet50_8xb64-steplr-440e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/odc/odc_resnet50_8xb64-steplr-440e_in1k-5af5dd0c.pth diff --git a/configs/selfsup/relative_loc/metafile.yml b/configs/selfsup/relative_loc/metafile.yml new file mode 100644 index 00000000..e4e451af --- /dev/null +++ b/configs/selfsup/relative_loc/metafile.yml @@ -0,0 +1,28 @@ +Collections: + - Name: RelativeLocation + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - SGD with Momentum + - Weight Decay + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + Paper: + URL: https://arxiv.org/abs/1505.05192 + Title: "Unsupervised visual representation learning by context prediction" + README: configs/selfsup/relative_loc/README.md + +Models: + - Name: relative-loc_resnet50_8xb64-steplr-70e_in1k + In Collection: RelativeLocation + Metadata: + Epochs: 70 + Batch Size: 512 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 39.65 + Config: configs/selfsup/relative_loc/relative-loc_resnet50_8xb64-steplr-70e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/relative_loc/relative-loc_resnet50_8xb64-steplr-70e_in1k_20211213-cdd3162f.pth diff --git a/configs/selfsup/rotation_pred/metafile.yml b/configs/selfsup/rotation_pred/metafile.yml new file mode 100644 index 00000000..fe809133 --- /dev/null +++ b/configs/selfsup/rotation_pred/metafile.yml @@ -0,0 +1,28 @@ +Collections: + - Name: RotationPrediction + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - SGD with Momentum + - Weight Decay + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + Paper: + URL: https://arxiv.org/abs/1803.07728 + Title: "Unsupervised representation learning by predicting image rotations" + README: configs/selfsup/rotation_pred/README.md + +Models: + - Name: rotation-pred_resnet50_8xb16-steplr-70e_in1k + In Collection: RotationPrediction + Metadata: + Epochs: 70 + Batch Size: 128 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 39.65 + Config: configs/selfsup/rotation_pred/rotation-pred_resnet50_8xb16-steplr-70e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/rotation_pred/rotation-pred_resnet50_8xb16-steplr-70e_in1k_20211213-513972ac.pth diff --git a/configs/selfsup/simclr/metafile.yml b/configs/selfsup/simclr/metafile.yml new file mode 100644 index 00000000..e9d98f71 --- /dev/null +++ b/configs/selfsup/simclr/metafile.yml @@ -0,0 +1,28 @@ +Collections: + - Name: SimCLR + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - LARS + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + - SimCLR + Paper: + URL: https://arxiv.org/abs/2002.05709 + Title: "A simple framework for contrastive learning of visual representations" + README: configs/selfsup/simclr/README.md + +Models: + - Name: simclr_resnet50_8xb32-coslr-200e_in1k + In Collection: SimCLR + Metadata: + Epochs: 200 + Batch Size: 256 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 58.92 + Config: configs/selfsup/simclr/simclr_resnet50_8xb32-coslr-200e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/simclr/simclr_resnet50_8xb32-coslr-200e_in1k_20211213-d0e53669.pth diff --git a/configs/selfsup/simsiam/metafile.yml b/configs/selfsup/simsiam/metafile.yml new file mode 100644 index 00000000..c7eae1c2 --- /dev/null +++ b/configs/selfsup/simsiam/metafile.yml @@ -0,0 +1,40 @@ +Collections: + - Name: SimSiam + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - SGD with Momentum + - Weight Decay + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + Paper: + URL: https://arxiv.org/abs/2011.10566 + Title: "Exploring simple siamese representation learning" + README: configs/selfsup/simsiam/README.md + +Models: + - Name: simsiam_resnet50_8xb32-coslr-100e_in1k + In Collection: SimSiam + Metadata: + Epochs: 100 + Batch Size: 256 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 67.88 + Config: configs/selfsup/simsiam/simsiam_resnet50_8xb32-coslr-100e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/simsiam/simsiam_resnet50_8xb32-coslr-100e_in1k_20211213-925d628c.pth + - Name: simsiam_resnet50_8xb32-coslr-200e_in1k + In Collection: SimSiam + Metadata: + Epochs: 200 + Batch Size: 256 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 69.80 + Config: configs/selfsup/simsiam/simsiam_resnet50_8xb32-coslr-200e_in1k.py + Weights: https://download.openmmlab.com/mmselfsup/simsiam/simsiam_resnet50_8xb32-coslr-200e_in1k_20211213-b605f9f1.pth diff --git a/configs/selfsup/swav/metafile.yml b/configs/selfsup/swav/metafile.yml new file mode 100644 index 00000000..f20a3bdf --- /dev/null +++ b/configs/selfsup/swav/metafile.yml @@ -0,0 +1,28 @@ +Collections: + - Name: SwAV + Metadata: + Training Data: ImageNet-1k + Training Techniques: + - LARS + Training Resources: 8x V100 GPUs + Architecture: + - ResNet + - SwAV + Paper: + URL: https://arxiv.org/abs/2006.09882 + Title: "Unsupervised Learning of Visual Features by Contrasting Cluster Assignments" + README: configs/selfsup/swav/README.md + +Models: + - Name: swav_resnet50_8xb32-mcrop-2-6-coslr-200e_in1k-224-96 + In Collection: SwAV + Metadata: + Epochs: 200 + Batch Size: 256 + Results: + - Task: Self-Supervised Image Classification + Dataset: ImageNet-1k + Metrics: + Top 1 Accuracy: 70.55 + Config: configs/selfsup/swav/swav_resnet50_8xb32-mcrop-2-6-coslr-200e_in1k-224-96.py + Weights: https://download.openmmlab.com/mmselfsup/swav/swav_resnet50_8xb32-mcrop-2-6-coslr-200e_in1k-224-96_20211213-0028900c.pth diff --git a/model-index.yml b/model-index.yml new file mode 100644 index 00000000..60342a95 --- /dev/null +++ b/model-index.yml @@ -0,0 +1,12 @@ +Import: + - configs/selfsup/byol/metafile.yml + - configs/selfsup/deepcluster/metafile.yml + - configs/selfsup/densecl/metafile.yml + - configs/selfsup/moco/metafile.yml + - configs/selfsup/npid/metafile.yml + - configs/selfsup/odc/metafile.yml + - configs/selfsup/relative_loc/metafile.yml + - configs/selfsup/rotation_pred/metafile.yml + - configs/selfsup/simclr/metafile.yml + - configs/selfsup/simsiam/metafile.yml + - configs/selfsup/swav/metafile.yml diff --git a/requirements/mminstall.txt b/requirements/mminstall.txt index 0a00d379..8cff1cf7 100644 --- a/requirements/mminstall.txt +++ b/requirements/mminstall.txt @@ -1 +1,3 @@ mmcv-full>=1.3.16 +mmdet >= 2.16.0 +mmsegmentation >= 0.20.2 diff --git a/setup.py b/setup.py index d121c9f0..3b800a28 100644 --- a/setup.py +++ b/setup.py @@ -133,8 +133,20 @@ def add_mim_extension(): if mode == 'symlink': src_relpath = osp.relpath(src_path, osp.dirname(tar_path)) - os.symlink(src_relpath, tar_path) - elif mode == 'copy': + try: + os.symlink(src_relpath, tar_path) + except OSError: + # Creating a symbolic link on windows may raise an + # `OSError: [WinError 1314]` due to privilege. If + # the error happens, the src file will be copied + mode = 'copy' + warnings.warn( + f'Failed to create a symbolic link for {src_relpath}, ' + f'and it will be copied to {tar_path}') + else: + continue + + if mode == 'copy': if osp.isfile(src_path): shutil.copyfile(src_path, tar_path) elif osp.isdir(src_path):