diff --git a/docs/MODEL_ZOO.md b/docs/MODEL_ZOO.md index 1da22351..5e37ec88 100644 --- a/docs/MODEL_ZOO.md +++ b/docs/MODEL_ZOO.md @@ -5,13 +5,43 @@ * 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
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-58f10cfe.pth25620055min43s
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neck
moco_r50_v2_simclr_neck-70379356.pth
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
+ + + + + + + + + + + + + + +
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
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-58f10cfe.pth25620055min43s
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neck
moco_r50_v2_simclr_neck-70379356.pth
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.0542.3350.5762.5970.4775.8278.5380.981.99
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neckfeat584.00
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
+ + + + + + + + + + + + + + + + +
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.0542.3350.5762.5970.4775.8278.5380.981.99
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neckfeat584.00
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 @@ -21,7 +51,22 @@ * 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.pydefault15.3534.5745.8160.9666.7267.02
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neck
15.1932.5443.1260.3667.0865.39
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
+ + + + + + + + + + + + + + + +
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.pydefault15.3534.5745.8160.9666.7267.02
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neck
15.1932.5443.1260.3667.0865.39
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 @@ -30,7 +75,22 @@ * 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
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neck
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
+ + + + + + + + + + + + + + + +
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
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neck
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 @@ -40,9 +100,39 @@ * 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
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neck
r50_lr0_01_head100.py31.37
59.65
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 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
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neck
r50_lr0_01_head100.py31.37
59.65
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
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neck
60.6084.29
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
+ + + + + + + + + + + + + + + +
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
selfsup/moco/r50_v2_simclr_neck.py-> SimCLR neck
60.6084.29
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 @@ -51,7 +141,18 @@ * Config: `benchmarks/detection/configs/pascal_voc_R_50_C4_24k_moco.yaml`. * Please follow [here](GETTING_STARTED.md#voc0712--coco17-object-detection) 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
+ + + + + + + + + + + +
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 @@ -60,6 +161,17 @@ * Config: `benchmarks/detection/configs/coco_R_50_C4_2x_moco.yaml`. * Please follow [here](GETTING_STARTED.md#voc0712--coco17-object-detection) 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.pydefault
+ + + + + + + + + + + +
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.pydefault