mmselfsup/docs/MODEL_ZOO.md

28 KiB

Model Zoo

Note

  • The testing GPUs are NVIDIA Tesla V100.
  • Experiments with the same batch size are directly comparable in speed.
MethodConfigRemarksDownload linkBatch sizeEpochsTime per epoch
ImageNet-torchvisionimagenet_r50-21352794.pth---
Random-kaimingrandom_r50-5d0fa71b.pth---
Relative-Locselfsup/relative_loc/r50.pydefaultrelative_loc_r50-342c9097.pth5127021min17s
Rotation-Predselfsup/rotation_pred/r50.pydefaultrotation_r50-cfab8ebb.pth1287049min58s
DeepClusterselfsup/deepcluster/r50.pydefaultdeepcluster_r50-bb8681e2.pth51220041min57s
NPIDselfsup/npid/r50.pydefaultnpid_r50-dec3df0c.pth25620020min5s
selfsup/npid/r50_ensure_neg.pyensure_neg=Truenpid_r50_ensure_neg-ce09b7ae.pth
ODCselfsup/odc/r50_v1.pydefaultodc_r50_v1-5af5dd0c.pth51244028min22s
MoCoselfsup/moco/r50_v1.pydefaultmoco_r50_v1-4ad89b5c.pth25620022min58s
MoCo v2selfsup/moco/r50_v2.pydefaultmoco_r50_v2-e3b0c442.pth25620055min43s
SimCLRselfsup/simclr/r50_bs256_ep200.pydefaultsimclr_r50_bs256_ep200-4577e9a6.pth2562001h1min7s
selfsup/simclr/r50_bs256_ep200_mocov2_neck.py-> MoCo v2 necksimclr_r50_bs256_ep200_mocov2_neck-0d6e5ff2.pth
BYOLselfsup/byol/r50_bs4096_ep200.pydefaultbyol_r50-e3b0c442.pth409620014min40s

Benchmarks

VOC07 SVM & SVM Low-shot

MethodConfigRemarksBest layerVOC07 SVMVOC07 SVM Low-shot
124816326496
ImageNet-torchvisionfeat587.1752.9963.5573.778.7981.7683.7585.1885.97
Random-kaimingfeat230.549.159.3911.0912.314.317.4121.3223.77
Relative-Locselfsup/relative_loc/r50.pydefaultfeat464.7818.1722.0829.3735.5841.848.7355.5558.33
Rotation-Predselfsup/rotation_pred/r50.pydefaultfeat467.3818.9123.3330.5738.2245.8352.2358.0861.11
DeepClusterselfsup/deepcluster/r50.pydefaultfeat574.2629.7337.6645.8555.5762.4866.1570.071.37
NPIDselfsup/npid/r50.pydefaultfeat574.5024.1931.2439.6950.9959.0364.468.6970.84
selfsup/npid/r50_ensure_neg.pyensure_neg=Truefeat575.70
ODCselfsup/odc/r50_v1.pydefaultfeat578.4232.4240.2749.9559.9665.7169.9973.6475.13
MoCoselfsup/moco/r50_v1.pydefaultfeat579.1830.0337.7347.6458.7866.070.674.676.07
MoCo v2selfsup/moco/r50_v2.pydefaultfeat584.26--------
SimCLRselfsup/simclr/r50_bs256_ep200.pydefaultfeat578.9532.4540.7650.459.0165.4570.1373.5875.35
selfsup/simclr/r50_bs256_ep200_mocov2_neck.py-> MoCo v2 neckfeat577.65
BYOLselfsup/byol/r50_bs4096_ep200.pydefaultfeat585.1044.4852.0962.8870.8776.1879.4581.8883.08

ImageNet Linear Classification

Note

  • Config: configs/benchmarks/linear_classification/imagenet/r50_multihead.py for ImageNet (Multi) and configs/benchmarks/linear_classification/imagenet/r50_last.py for ImageNet (Last).
  • For DeepCluster, use the corresponding one with _sobel.
  • ImageNet (Multi) evaluates features in around 9k dimensions from different layers. Top-1 result of the last epoch is reported.
  • ImageNet (Last) evaluates the last feature after global average pooling, e.g., 2048 dimensions for resnet50. The best top-1 result among all epochs is reported.
MethodConfigRemarksImageNet (Multi)ImageNet (Last)
feat1feat2feat3feat4feat5avgpool
ImageNet-torchvision15.1833.9647.8667.5676.1774.12
Random-kaiming11.3716.2113.479.076.544.35
Relative-Locselfsup/relative_loc/r50.pydefault14.7631.2945.7749.3140.2038.83
Rotation-Predselfsup/rotation_pred/r50.pydefault12.8934.3044.9154.9949.0947.01
DeepClusterselfsup/deepcluster/r50.pydefault12.7830.8143.8857.7151.6846.92
NPIDselfsup/npid/r50.pydefault14.2831.2040.6854.4656.6156.60
ODCselfsup/odc/r50_v1.pydefault14.7631.8242.4455.7657.7053.42
MoCoselfsup/moco/r50_v1.pydefault15.3233.0844.6857.2760.6061.02
MoCo v2selfsup/moco/r50_v2.pydefault14.7432.8144.9561.6166.7367.69
SimCLRselfsup/simclr/r50_bs256_ep200.pydefault17.0931.3741.3854.3561.5760.06
selfsup/simclr/r50_bs256_ep200_mocov2_neck.py-> MoCo v2 neck16.9731.8841.7354.3359.9458.00
BYOLselfsup/byol/r50_bs4096_ep200.pydefault16.7034.2246.6160.7869.1467.10

Places205 Linear Classification

Note

  • Config: configs/benchmarks/linear_classification/places205/r50_multihead.py.
  • For DeepCluster, use the corresponding one with _sobel.
  • Places205 evaluates features in around 9k dimensions from different layers. Top-1 result of the last epoch is reported.
MethodConfigRemarksPlaces205
feat1feat2feat3feat4feat5
ImageNet-torchvision21.2736.1043.0351.3853.05
Random-kaiming17.1921.7019.2314.5911.73
Relative-Locselfsup/relative_loc/r50.pydefault21.0734.8642.8445.7141.45
Rotation-Predselfsup/rotation_pred/r50.pydefault18.6535.7142.2845.9843.72
DeepClusterselfsup/deepcluster/r50.pydefault18.8033.9341.4447.2242.61
NPIDselfsup/npid/r50.pydefault20.5334.0340.4847.1347.73
ODCselfsup/odc/r50_v1.pydefault20.9434.7841.1947.4549.18
MoCoselfsup/moco/r50_v1.pydefault21.1335.1942.4048.7850.70
MoCo v2selfsup/moco/r50_v2.pydefault20.8635.6342.5749.9352.05
SimCLRselfsup/simclr/r50_bs256_ep200.pydefault22.5534.1440.3547.1551.64
selfsup/simclr/r50_bs256_ep200_mocov2_neck.py-> MoCo v2 neck
BYOLselfsup/byol/r50_bs4096_ep200.pydefault22.2835.9543.0349.7952.75

ImageNet Semi-Supervised Classification

Note

  • In this benchmark, the necks or heads are removed and only the backbone CNN is evaluated by appending a linear classification head. All parameters are fine-tuned.
  • Config: under configs/benchmarks/semi_classification/imagenet_1percent/ for 1% data, and configs/benchmarks/semi_classification/imagenet_10percent/ for 10% data.
  • When training with 1% ImageNet, we find hyper-parameters especially the learning rate greatly influence the performance. Hence, we prepare a list of settings with the base learning rate from {0.001, 0.01, 0.1} and the learning rate multiplier for the head from {1, 10, 100}. We choose the best performing setting for each method.
  • Please use --deterministic in this benchmark.
MethodConfigRemarksOptimal setting for ImageNet 1%ImageNet 1%
top-1top-5
ImageNet-torchvisionr50_lr0_001_head100.py68.6888.87
Random-kaimingr50_lr0_01_head1.py1.564.99
Relative-Locselfsup/relative_loc/r50.pydefaultr50_lr0_01_head100.py16.4840.37
Rotation-Predselfsup/rotation_pred/r50.pydefaultr50_lr0_01_head100.py18.9844.05
DeepClusterselfsup/deepcluster/r50.pydefaultr50_lr0_01_head1_sobel.py33.4458.62
NPIDselfsup/npid/r50.pydefaultr50_lr0_01_head100.py27.9554.37
ODCselfsup/odc/r50_v1.pydefaultr50_lr0_1_head100.py32.3961.02
MoCoselfsup/moco/r50_v1.pydefaultr50_lr0_01_head100.py33.1561.30
MoCo v2selfsup/moco/r50_v2.pydefaultr50_lr0_01_head100.py38.7167.90
SimCLRselfsup/simclr/r50_bs256_ep200.pydefaultr50_lr0_01_head100.py36.0964.50
selfsup/simclr/r50_bs256_ep200_mocov2_neck.py-> MoCo v2 neckr50_lr0_01_head100.py36.3164.68
BYOLselfsup/byol/r50_bs4096_ep200.pydefaultr50_lr0_01_head10.py49.3776.75
MethodConfigRemarksOptimal setting for ImageNet 10%ImageNet 10%
top-1top-5
ImageNet-torchvisionr50_lr0_001_head10.py74.5392.19
Random-kaimingr50_lr0_01_head1.py21.7844.24
Relative-Locselfsup/relative_loc/r50.pydefaultr50_lr0_01_head100.py53.8679.62
Rotation-Predselfsup/rotation_pred/r50.pydefaultr50_lr0_01_head100.py54.7580.21
DeepClusterselfsup/deepcluster/r50.pydefaultr50_lr0_01_head1_sobel.py52.9477.96
NPIDselfsup/npid/r50.pydefaultr50_lr0_01_head100.py57.2281.39
ODCselfsup/odc/r50_v1.pydefaultr50_lr0_1_head10.py58.1582.55
MoCoselfsup/moco/r50_v1.pydefaultr50_lr0_01_head100.py60.0884.02
MoCo v2selfsup/moco/r50_v2.pydefaultr50_lr0_01_head100.py61.6484.90
SimCLRselfsup/simclr/r50_bs256_ep200.pydefaultr50_lr0_01_head100.py58.4682.60
selfsup/simclr/r50_bs256_ep200_mocov2_neck.py-> MoCo v2 neck58.3882.53
BYOLselfsup/byol/r50_bs4096_ep200.pydefaultr50_lr0_01_head100.py65.9487.81

PASCAL VOC07+12 Object Detection

Note

  • This benchmark follows the evluation protocols set up by MoCo.
  • Config: benchmarks/detection/configs/pascal_voc_R_50_C4_24k_moco.yaml.
  • Please follow here to run the evaluation.
MethodConfigRemarksVOC07+12
AP50APAP75
ImageNet-torchvision81.5854.1959.80
Random-kaiming59.0232.8331.60
Relative-Locselfsup/relative_loc/r50.pydefault80.3655.1361.18
Rotation-Predselfsup/rotation_pred/r50.pydefault80.9155.5261.39
NPIDselfsup/npid/r50.pydefault80.0354.1159.50
MoCoselfsup/moco/r50_v1.pydefault81.3855.9562.23
MoCo v2selfsup/moco/r50_v2.pydefault81.9656.6362.90
SimCLRselfsup/simclr/r50_bs256_ep200.pydefault79.4151.5455.63
BYOLselfsup/byol/r50_bs4096_ep200.pydefault80.9551.8756.53

COCO2017 Object Detection

Note

  • This benchmark follows the evluation protocols set up by MoCo.
  • Config: benchmarks/detection/configs/coco_R_50_C4_2x_moco.yaml.
  • Please follow here to run the evaluation.
MethodConfigRemarksCOCO2017
AP50(Box)AP(Box)AP75(Box)AP50(Mask)AP(Mask)AP75(Mask)
ImageNet-torchvision59.940.043.156.534.736.9
Random-kaiming54.635.638.251.531.433.5
Relative-Locselfsup/relative_loc/r50.pydefault59.640.043.556.535.037.3
Rotation-Predselfsup/rotation_pred/r50.pydefault59.340.043.656.034.937.4
NPIDselfsup/npid/r50.pydefault59.039.442.855.934.536.6
MoCoselfsup/moco/r50_v1.pydefault60.540.944.257.135.537.7
MoCo v2selfsup/moco/r50_v2.pydefault60.740.944.257.235.537.9
SimCLRselfsup/simclr/r50_bs256_ep200.pydefault59.139.642.955.934.637.1
BYOLselfsup/byol/r50.pydefault60.540.343.956.835.137.3