diff --git a/configs/classification/cifar10/swintiny_b64_5e_jpg.py b/configs/classification/cifar10/swintiny_b64_5e_jpg.py index dffb32a7..dad3629a 100644 --- a/configs/classification/cifar10/swintiny_b64_5e_jpg.py +++ b/configs/classification/cifar10/swintiny_b64_5e_jpg.py @@ -6,7 +6,6 @@ model = dict( type='PytorchImageModelWrapper', model_name='swin_tiny_patch4_window7_224', num_classes=10, - pretrained=True, ), head=dict(type='ClsHead', with_fc=False)) # dataset settings diff --git a/configs/classification/imagenet/swint/imagenet_swin_base_patch4_window7_224_jpg.py b/configs/classification/imagenet/swint/imagenet_swin_base_patch4_window7_224_jpg.py index 03467024..871b16df 100644 --- a/configs/classification/imagenet/swint/imagenet_swin_base_patch4_window7_224_jpg.py +++ b/configs/classification/imagenet/swint/imagenet_swin_base_patch4_window7_224_jpg.py @@ -5,5 +5,4 @@ model = dict( type='PytorchImageModelWrapper', model_name='swin_base_patch4_window7_224', num_classes=1000, - pretrained=False, )) diff --git a/configs/classification/imagenet/swint/imagenet_swin_large_patch4_window7_224_jpg.py b/configs/classification/imagenet/swint/imagenet_swin_large_patch4_window7_224_jpg.py index c86e710a..06f536c2 100644 --- a/configs/classification/imagenet/swint/imagenet_swin_large_patch4_window7_224_jpg.py +++ b/configs/classification/imagenet/swint/imagenet_swin_large_patch4_window7_224_jpg.py @@ -5,5 +5,4 @@ model = dict( type='PytorchImageModelWrapper', model_name='swin_large_patch4_window7_224', num_classes=1000, - pretrained=False, )) diff --git a/configs/classification/imagenet/swint/imagenet_swin_tiny_patch4_window7_224_jpg.py b/configs/classification/imagenet/swint/imagenet_swin_tiny_patch4_window7_224_jpg.py index 8d3868e7..1a6ed248 100644 --- a/configs/classification/imagenet/swint/imagenet_swin_tiny_patch4_window7_224_jpg.py +++ b/configs/classification/imagenet/swint/imagenet_swin_tiny_patch4_window7_224_jpg.py @@ -5,5 +5,4 @@ model = dict( type='PytorchImageModelWrapper', model_name='swin_tiny_patch4_window7_224', num_classes=1000, - pretrained=False, )) diff --git a/configs/classification/imagenet/swint/swin_tiny_patch4_window7_224_b64x16_300e_jpg.py b/configs/classification/imagenet/swint/swin_tiny_patch4_window7_224_b64x16_300e_jpg.py index cbb472f9..b7381c5d 100644 --- a/configs/classification/imagenet/swint/swin_tiny_patch4_window7_224_b64x16_300e_jpg.py +++ b/configs/classification/imagenet/swint/swin_tiny_patch4_window7_224_b64x16_300e_jpg.py @@ -9,6 +9,7 @@ log_config = dict( model = dict( type='Classification', train_preprocess=['mixUp'], + pretrained=False, mixup_cfg=dict( mixup_alpha=0.8, cutmix_alpha=1.0, @@ -20,7 +21,6 @@ model = dict( type='PytorchImageModelWrapper', model_name='swin_tiny_patch4_window7_224', num_classes=1000, - pretrained=False, ), head=dict( type='ClsHead', diff --git a/configs/classification/imagenet/timm/timm_config.py b/configs/classification/imagenet/timm/timm_config.py index 562a77ad..a902ae18 100644 --- a/configs/classification/imagenet/timm/timm_config.py +++ b/configs/classification/imagenet/timm/timm_config.py @@ -9,7 +9,6 @@ log_config = dict( model = dict( type='Classification', train_preprocess=['mixUp'], - pretrained=True, mixup_cfg=dict( mixup_alpha=0.2, prob=1.0, diff --git a/configs/classification/imagenet/vit/imagenet_vit_base_patch16_224_jpg.py b/configs/classification/imagenet/vit/imagenet_vit_base_patch16_224_jpg.py index 998281f1..cbf17127 100644 --- a/configs/classification/imagenet/vit/imagenet_vit_base_patch16_224_jpg.py +++ b/configs/classification/imagenet/vit/imagenet_vit_base_patch16_224_jpg.py @@ -5,5 +5,4 @@ model = dict( type='PytorchImageModelWrapper', model_name='vit_base_patch16_224', num_classes=1000, - pretrained=False, )) diff --git a/configs/classification/imagenet/vit/imagenet_vit_base_patch32_224_jpg.py b/configs/classification/imagenet/vit/imagenet_vit_base_patch32_224_jpg.py index 706ac814..d26b1285 100644 --- a/configs/classification/imagenet/vit/imagenet_vit_base_patch32_224_jpg.py +++ b/configs/classification/imagenet/vit/imagenet_vit_base_patch32_224_jpg.py @@ -5,5 +5,4 @@ model = dict( type='PytorchImageModelWrapper', model_name='vit_base_patch32_224', num_classes=1000, - pretrained=False, )) diff --git a/configs/classification/imagenet/vit/imagenet_vit_large_patch16_224_jpg.py b/configs/classification/imagenet/vit/imagenet_vit_large_patch16_224_jpg.py index f02e4237..fc2792f1 100644 --- a/configs/classification/imagenet/vit/imagenet_vit_large_patch16_224_jpg.py +++ b/configs/classification/imagenet/vit/imagenet_vit_large_patch16_224_jpg.py @@ -5,5 +5,4 @@ model = dict( type='PytorchImageModelWrapper', model_name='vit_large_patch16_224', num_classes=1000, - pretrained=False, )) diff --git a/configs/classification/imagenet/vit/imagenet_vit_large_patch32_224_jpg.py b/configs/classification/imagenet/vit/imagenet_vit_large_patch32_224_jpg.py index bfea4e07..948b2ef9 100644 --- a/configs/classification/imagenet/vit/imagenet_vit_large_patch32_224_jpg.py +++ b/configs/classification/imagenet/vit/imagenet_vit_large_patch32_224_jpg.py @@ -5,5 +5,4 @@ model = dict( type='PytorchImageModelWrapper', model_name='vit_large_patch32_224', num_classes=1000, - pretrained=False, )) diff --git a/configs/classification/imagenet/vit/vit_base_patch16_224_b64x64_300e_jpg.py b/configs/classification/imagenet/vit/vit_base_patch16_224_b64x64_300e_jpg.py index b4fe5e6b..1b1ca32b 100644 --- a/configs/classification/imagenet/vit/vit_base_patch16_224_b64x64_300e_jpg.py +++ b/configs/classification/imagenet/vit/vit_base_patch16_224_b64x64_300e_jpg.py @@ -9,6 +9,7 @@ log_config = dict( model = dict( type='Classification', train_preprocess=['mixUp'], + pretrained=False, mixup_cfg=dict( mixup_alpha=0.2, prob=1.0, @@ -19,7 +20,6 @@ model = dict( type='PytorchImageModelWrapper', model_name='vit_base_patch16_224', num_classes=1000, - pretrained=False, ), head=dict( type='ClsHead', diff --git a/configs/config_templates/classification_oss.py b/configs/config_templates/classification_oss.py index 76d52cc7..9f4a5890 100644 --- a/configs/config_templates/classification_oss.py +++ b/configs/config_templates/classification_oss.py @@ -29,7 +29,6 @@ model = dict( # model_name = 'vit_deit_small_distilled_patch16_224', # good 384, model_name='resnet50', num_classes=0, - pretrained=True, ), head=dict( type='ClsHead', with_avg_pool=True, in_channels=2048, diff --git a/configs/config_templates/dino_rn50_tfrecord_oss.py b/configs/config_templates/dino_rn50_tfrecord_oss.py index 244d7087..2acfcfc8 100644 --- a/configs/config_templates/dino_rn50_tfrecord_oss.py +++ b/configs/config_templates/dino_rn50_tfrecord_oss.py @@ -21,7 +21,7 @@ model_output_dim = 65536 model = dict( type='DINO', - pretrained=None, + pretrained=False, train_preprocess=[ 'randomGrayScale', 'gaussianBlur', 'solarize' ], # 2+6 view, has different augment pipeline, dino is complex @@ -42,7 +42,6 @@ model = dict( # model_name = 'vit_deit_small_distilled_patch16_224', # good 384, model_name='resnet50', num_classes=0, - # pretrained=True, ), # swav need mulit crop ,doesn't support vit based model diff --git a/configs/config_templates/dino_timm.py b/configs/config_templates/dino_timm.py index e57f7f7f..d002d96b 100644 --- a/configs/config_templates/dino_timm.py +++ b/configs/config_templates/dino_timm.py @@ -15,7 +15,6 @@ model_output_dim = 65536 model = dict( type='DINO', - pretrained=None, train_preprocess=[ 'randomGrayScale', 'gaussianBlur', 'solarize' ], # 2+6 view, has different augment pipeline, dino is complex @@ -41,7 +40,6 @@ model = dict( # model_name = 'resnet18', # model_name = 'resnet34', # model_name = 'resnet101', - pretrained=True, ), # swav need mulit crop ,doesn't support vit based model diff --git a/configs/config_templates/dino_timm_tfrecord_oss.py b/configs/config_templates/dino_timm_tfrecord_oss.py index 451bab1d..1d234552 100644 --- a/configs/config_templates/dino_timm_tfrecord_oss.py +++ b/configs/config_templates/dino_timm_tfrecord_oss.py @@ -20,7 +20,7 @@ model_output_dim = 65536 model = dict( type='DINO', - pretrained=None, + pretrained=False, train_preprocess=[ 'randomGrayScale', 'gaussianBlur', 'solarize' ], # 2+6 view, has different augment pipeline, dino is complex @@ -46,7 +46,6 @@ model = dict( # model_name = 'resnet34', # model_name = 'resnet101', # num_classes=0, - # pretrained=True, ), # swav need mulit crop ,doesn't support vit based model diff --git a/configs/config_templates/metric_learning/modelparallel_softmaxbased_tfrecord_oss.py b/configs/config_templates/metric_learning/modelparallel_softmaxbased_tfrecord_oss.py index 0bcf9c0f..6f4f90d7 100644 --- a/configs/config_templates/metric_learning/modelparallel_softmaxbased_tfrecord_oss.py +++ b/configs/config_templates/metric_learning/modelparallel_softmaxbased_tfrecord_oss.py @@ -67,7 +67,6 @@ model = dict( # model_name = 'resnet34', # model_name = 'resnet101', num_classes='${backbone_channel}', - pretrained=True, ), neck=dict( type='RetrivalNeck', diff --git a/configs/config_templates/metric_learning/softmaxbased_tfrecord_oss.py b/configs/config_templates/metric_learning/softmaxbased_tfrecord_oss.py index 7ce3b7cf..c4a9bd10 100644 --- a/configs/config_templates/metric_learning/softmaxbased_tfrecord_oss.py +++ b/configs/config_templates/metric_learning/softmaxbased_tfrecord_oss.py @@ -72,7 +72,6 @@ model = dict( # model_name = 'resnet34', # model_name = 'resnet101', num_classes='${backbone_channel}', - pretrained=True, ), neck=dict( type='RetrivalNeck', diff --git a/configs/config_templates/moby_timm_tfrecord_oss.py b/configs/config_templates/moby_timm_tfrecord_oss.py index a74c4e65..3fbe17e2 100644 --- a/configs/config_templates/moby_timm_tfrecord_oss.py +++ b/configs/config_templates/moby_timm_tfrecord_oss.py @@ -14,7 +14,7 @@ model = dict( train_preprocess=['randomGrayScale', 'gaussianBlur'], queue_len=4096, momentum=0.99, - pretrained=None, + pretrained=False, # backbone=dict( # type='ResNet', # depth=50, @@ -40,7 +40,6 @@ model = dict( # model_name='shuffletrans_tiny_p4_w7_224', #768 model_name='resnet50', # 2048 num_classes=0, - pretrained=False, ), neck=dict( type='MoBYMLP', diff --git a/configs/config_templates/moco_r50_tfrecord.py b/configs/config_templates/moco_r50_tfrecord.py index 0a4e89b0..68b00ef0 100644 --- a/configs/config_templates/moco_r50_tfrecord.py +++ b/configs/config_templates/moco_r50_tfrecord.py @@ -3,7 +3,7 @@ _base_ = 'configs/base.py' model = dict( type='MOCO', - pretrained=None, + pretrained=False, train_preprocess=['randomGrayScale', 'gaussianBlur'], queue_len=65536, feat_dim=128, @@ -24,7 +24,6 @@ model = dict( # #model_name = 'vit_deit_small_distilled_patch16_224', # good 384, # #model_name = 'resnet50', # #num_classes=1000, - # pretrained=True, # ), neck=dict( type='NonLinearNeckV1', diff --git a/configs/config_templates/moco_r50_tfrecord_oss.py b/configs/config_templates/moco_r50_tfrecord_oss.py index 66b80153..bbcdd15b 100644 --- a/configs/config_templates/moco_r50_tfrecord_oss.py +++ b/configs/config_templates/moco_r50_tfrecord_oss.py @@ -13,7 +13,7 @@ work_dir = 'oss://path/to/work_dirs/moco_r50_oss/' model = dict( type='MOCO', - pretrained=None, + pretrained=False, train_preprocess=['randomGrayScale', 'gaussianBlur'], queue_len=65536, feat_dim=128, @@ -34,7 +34,6 @@ model = dict( # #model_name = 'vit_deit_small_distilled_patch16_224', # good 384, # #model_name = 'resnet50', # #num_classes=1000, - # pretrained=True, # ), neck=dict( type='NonLinearNeckV1', diff --git a/configs/config_templates/moco_timm_tfrecord.py b/configs/config_templates/moco_timm_tfrecord.py index ecb33cef..da91469b 100644 --- a/configs/config_templates/moco_timm_tfrecord.py +++ b/configs/config_templates/moco_timm_tfrecord.py @@ -3,7 +3,6 @@ _base_ = 'configs/base.py' model = dict( type='MOCO', - pretrained=None, train_preprocess=['randomGrayScale', 'gaussianBlur'], queue_len=65536, feat_dim=128, @@ -21,7 +20,6 @@ model = dict( # model_name='xcit_medium_24_p8', #384 model_name='xcit_large_24_p8', # 768 num_classes=0, - pretrained=True, ), neck=dict( type='NonLinearNeckV1', diff --git a/configs/config_templates/moco_timm_tfrecord_oss.py b/configs/config_templates/moco_timm_tfrecord_oss.py index 5d421a4a..fb2f65dd 100644 --- a/configs/config_templates/moco_timm_tfrecord_oss.py +++ b/configs/config_templates/moco_timm_tfrecord_oss.py @@ -13,7 +13,6 @@ work_dir = 'oss://path/to/work_dirs/moco_timm_oss/' model = dict( type='MOCO', - pretrained=None, train_preprocess=['randomGrayScale', 'gaussianBlur'], queue_len=65536, feat_dim=128, @@ -29,7 +28,6 @@ model = dict( # model_name = 'resnet50', model_name='xcit_small_12_p8', num_classes=0, - pretrained=True, ), neck=dict( type='NonLinearNeckV1', diff --git a/configs/config_templates/swav_r50_tfrecord.py b/configs/config_templates/swav_r50_tfrecord.py index 0883e56e..2bf9463a 100644 --- a/configs/config_templates/swav_r50_tfrecord.py +++ b/configs/config_templates/swav_r50_tfrecord.py @@ -5,7 +5,7 @@ num_crops = [2, 6] # model settings model = dict( type='SWAV', - pretrained=None, + pretrained=False, train_preprocess=['randomGrayScale', 'gaussianBlur'], backbone=dict( type='ResNet', diff --git a/configs/config_templates/swav_r50_tfrecord_oss.py b/configs/config_templates/swav_r50_tfrecord_oss.py index a7fb0404..20227216 100644 --- a/configs/config_templates/swav_r50_tfrecord_oss.py +++ b/configs/config_templates/swav_r50_tfrecord_oss.py @@ -15,7 +15,7 @@ num_crops = [2, 6] model = dict( type='SWAV', - pretrained=None, + pretrained=False, train_preprocess=['randomGrayScale', 'gaussianBlur'], backbone=dict( type='ResNet', diff --git a/configs/config_templates/topdown_litehrnet_30.py b/configs/config_templates/topdown_litehrnet_30.py index 9bea2ab4..c4aa582a 100644 --- a/configs/config_templates/topdown_litehrnet_30.py +++ b/configs/config_templates/topdown_litehrnet_30.py @@ -27,7 +27,7 @@ channel_cfg = dict( # model settings model = dict( type='TopDown', - pretrained=None, + pretrained=False, backbone=dict( type='LiteHRNet', in_channels=3, diff --git a/configs/metric_learning/imagenet_resnet50_1000kid_tfrecord.py b/configs/metric_learning/imagenet_resnet50_1000kid_tfrecord.py index 3dd6babb..ca75fa79 100644 --- a/configs/metric_learning/imagenet_resnet50_1000kid_tfrecord.py +++ b/configs/metric_learning/imagenet_resnet50_1000kid_tfrecord.py @@ -5,7 +5,7 @@ model = dict( type='Classification', train_preprocess=['randomErasing'], # train_preprocess=['mixUp'], - pretrained=None, + pretrained=False, backbone=dict( type='ResNet', depth=50, diff --git a/configs/metric_learning/sop_timm_swinb_local.py b/configs/metric_learning/sop_timm_swinb_local.py index 930976b5..01b4a55e 100644 --- a/configs/metric_learning/sop_timm_swinb_local.py +++ b/configs/metric_learning/sop_timm_swinb_local.py @@ -18,9 +18,7 @@ model = dict( 'http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/pretrained_models/timm/swin_base_patch4_window7_224_22k_statedict.pth', backbone=dict( type='PytorchImageModelWrapper', - model_name='swin_base_patch4_window7_224_in22k' - # pretrained=False, - ), + model_name='swin_base_patch4_window7_224_in22k'), neck=dict( type='RetrivalNeck', in_channels=1024, diff --git a/configs/pose/litehrnet_30_coco_384x288.py b/configs/pose/litehrnet_30_coco_384x288.py index accc439b..ecda4760 100644 --- a/configs/pose/litehrnet_30_coco_384x288.py +++ b/configs/pose/litehrnet_30_coco_384x288.py @@ -40,7 +40,7 @@ channel_cfg = dict( # model settings model = dict( type='TopDown', - pretrained=None, + pretrained=False, backbone=dict( type='LiteHRNet', in_channels=3, diff --git a/configs/selfsup/byol/byol_rn50_8xb32_200e.py b/configs/selfsup/byol/byol_rn50_8xb32_200e.py index acceb229..9aa58ae4 100644 --- a/configs/selfsup/byol/byol_rn50_8xb32_200e.py +++ b/configs/selfsup/byol/byol_rn50_8xb32_200e.py @@ -3,7 +3,7 @@ _base_ = '../../base.py' # model settings model = dict( type='BYOL', - pretrained=None, + pretrained=False, base_momentum=0.996, backbone=dict( type='ResNet', diff --git a/configs/selfsup/dino/dino_deit_small_p16_8xb32_100e_jpg.py b/configs/selfsup/dino/dino_deit_small_p16_8xb32_100e_jpg.py index 59766804..827cd837 100644 --- a/configs/selfsup/dino/dino_deit_small_p16_8xb32_100e_jpg.py +++ b/configs/selfsup/dino/dino_deit_small_p16_8xb32_100e_jpg.py @@ -7,7 +7,7 @@ model_output_dim = 65536 model = dict( type='DINO', - pretrained=None, + pretrained=False, train_preprocess=[ 'randomGrayScale', 'gaussianBlur', 'solarize' ], # 2+6 view, has different augment pipeline, dino is complex @@ -33,7 +33,6 @@ model = dict( # model_name = 'resnet18', # model_name = 'resnet34', # model_name = 'resnet101', - # pretrained=True, ), # swav need mulit crop ,doesn't support vit based model diff --git a/configs/selfsup/dino/dino_deit_small_p16_8xb32_100e_tfrecord.py b/configs/selfsup/dino/dino_deit_small_p16_8xb32_100e_tfrecord.py index 966e6a13..1881889c 100644 --- a/configs/selfsup/dino/dino_deit_small_p16_8xb32_100e_tfrecord.py +++ b/configs/selfsup/dino/dino_deit_small_p16_8xb32_100e_tfrecord.py @@ -9,7 +9,7 @@ model_output_dim = 65536 model = dict( type='DINO', - pretrained=None, + pretrained=False, train_preprocess=[ 'randomGrayScale', 'gaussianBlur', 'solarize' ], # 2+6 view, has different augment pipeline, dino is complex @@ -35,7 +35,6 @@ model = dict( # model_name = 'resnet34', # model_name = 'resnet101', # num_classes=0, - # pretrained=True, ), # swav need mulit crop ,doesn't support vit based model diff --git a/configs/selfsup/mixco/mixco_genet_8xb32_200e_tfrecord_oss.py b/configs/selfsup/mixco/mixco_genet_8xb32_200e_tfrecord_oss.py index 2cff6b26..81ad2d79 100644 --- a/configs/selfsup/mixco/mixco_genet_8xb32_200e_tfrecord_oss.py +++ b/configs/selfsup/mixco/mixco_genet_8xb32_200e_tfrecord_oss.py @@ -12,7 +12,7 @@ _base_ = '../../base.py' # model settings model = dict( type='MIXCO', - pretrained=None, + pretrained=False, train_preprocess=['randomGrayScale', 'gaussianBlur', 'mixUp'], queue_len=65536, feat_dim=128, diff --git a/configs/selfsup/mixco/mixco_rn50_4xb64_200e_tfrecord_oss.py b/configs/selfsup/mixco/mixco_rn50_4xb64_200e_tfrecord_oss.py index dec41321..767d290a 100644 --- a/configs/selfsup/mixco/mixco_rn50_4xb64_200e_tfrecord_oss.py +++ b/configs/selfsup/mixco/mixco_rn50_4xb64_200e_tfrecord_oss.py @@ -12,7 +12,7 @@ _base_ = '../../base.py' # model settings model = dict( type='MIXCO', - pretrained=None, + pretrained=False, train_preprocess=['randomGrayScale', 'gaussianBlur', 'mixUp'], queue_len=65536, feat_dim=128, diff --git a/configs/selfsup/moby/moby_deit_small_4xb32_100e_jpg.py b/configs/selfsup/moby/moby_deit_small_4xb32_100e_jpg.py index 02ac61af..fbbd88a8 100644 --- a/configs/selfsup/moby/moby_deit_small_4xb32_100e_jpg.py +++ b/configs/selfsup/moby/moby_deit_small_4xb32_100e_jpg.py @@ -6,7 +6,7 @@ model = dict( train_preprocess=['randomGrayScale', 'gaussianBlur'], queue_len=4096, momentum=0.99, - pretrained=None, + pretrained=False, backbone=dict( type='PytorchImageModelWrapper', # model_name='pit_xs_distilled_224', @@ -16,7 +16,6 @@ model = dict( # model_name='vit_deit_tiny_distilled_patch16_224', # good 192, model_name='vit_deit_small_distilled_patch16_224', # good 384, # model_name = 'resnet50', - # pretrained=True, ), neck=dict( type='MoBYMLP', diff --git a/configs/selfsup/moby/moby_deit_small_p16_4xb128_300e_tfrecord.py b/configs/selfsup/moby/moby_deit_small_p16_4xb128_300e_tfrecord.py index dcf474a4..b878a026 100644 --- a/configs/selfsup/moby/moby_deit_small_p16_4xb128_300e_tfrecord.py +++ b/configs/selfsup/moby/moby_deit_small_p16_4xb128_300e_tfrecord.py @@ -15,7 +15,7 @@ model = dict( train_preprocess=['randomGrayScale', 'gaussianBlur'], queue_len=4096, momentum=0.99, - pretrained=None, + pretrained=False, backbone=dict( type='PytorchImageModelWrapper', # model_name='pit_xs_distilled_224', @@ -30,7 +30,6 @@ model = dict( # model_name='shuffletrans_tiny_p4_w7_224', #768 # model_name = 'resnet50', # 2048 num_classes=0, - pretrained=False, ), neck=dict( type='MoBYMLP', diff --git a/configs/selfsup/moby/moby_dynamic_swin_tiny_8xb64_300e_tfrecord.py b/configs/selfsup/moby/moby_dynamic_swin_tiny_8xb64_300e_tfrecord.py index 7585ed16..18c9ca58 100644 --- a/configs/selfsup/moby/moby_dynamic_swin_tiny_8xb64_300e_tfrecord.py +++ b/configs/selfsup/moby/moby_dynamic_swin_tiny_8xb64_300e_tfrecord.py @@ -15,12 +15,11 @@ model = dict( train_preprocess=['randomGrayScale', 'gaussianBlur'], queue_len=4096, momentum=0.99, - pretrained=None, + pretrained=False, backbone=dict( type='PytorchImageModelWrapper', model_name='dynamic_swin_tiny_p4_w7_224', num_classes=0, - pretrained=False, ), neck=dict( type='MoBYMLP', diff --git a/configs/selfsup/moby/moby_rn50_4xb128_100e_tfrecord.py b/configs/selfsup/moby/moby_rn50_4xb128_100e_tfrecord.py index 96a67f85..7e99c17d 100644 --- a/configs/selfsup/moby/moby_rn50_4xb128_100e_tfrecord.py +++ b/configs/selfsup/moby/moby_rn50_4xb128_100e_tfrecord.py @@ -6,7 +6,6 @@ model = dict( train_preprocess=['randomGrayScale', 'gaussianBlur'], queue_len=4096, momentum=0.99, - pretrained=None, # backbone=dict( # type='ResNet', # depth=50, @@ -31,7 +30,6 @@ model = dict( # model_name='shuffletrans_tiny_p4_w7_224', #768 model_name='resnet50', # 2048 num_classes=0, - pretrained=True, ), neck=dict( type='MoBYMLP', diff --git a/configs/selfsup/mocov2/mocov2_rn50_8xb32_200e_jpg.py b/configs/selfsup/mocov2/mocov2_rn50_8xb32_200e_jpg.py index 8c112707..359e14fc 100644 --- a/configs/selfsup/mocov2/mocov2_rn50_8xb32_200e_jpg.py +++ b/configs/selfsup/mocov2/mocov2_rn50_8xb32_200e_jpg.py @@ -3,7 +3,7 @@ _base_ = '../../base.py' # model settings model = dict( type='MOCO', - pretrained=None, + pretrained=False, train_preprocess=['gaussianBlur'], queue_len=65536, feat_dim=128, diff --git a/configs/selfsup/mocov2/mocov2_rn50_8xb32_200e_tfrecord.py b/configs/selfsup/mocov2/mocov2_rn50_8xb32_200e_tfrecord.py index 53bffd95..0eb2f30e 100644 --- a/configs/selfsup/mocov2/mocov2_rn50_8xb32_200e_tfrecord.py +++ b/configs/selfsup/mocov2/mocov2_rn50_8xb32_200e_tfrecord.py @@ -3,7 +3,7 @@ _base_ = '../../base.py' # model settings model = dict( type='MOCO', - pretrained=None, + pretrained=False, train_preprocess=['randomGrayScale', 'gaussianBlur'], queue_len=65536, feat_dim=128, @@ -24,7 +24,6 @@ model = dict( # #model_name = 'vit_deit_small_distilled_patch16_224', # good 384, # #model_name = 'resnet50', # #num_classes=1000, - # pretrained=True, # ), neck=dict( type='NonLinearNeckV1', diff --git a/configs/selfsup/simclr/simclr_rn50_8xb32_200e_jpg.py b/configs/selfsup/simclr/simclr_rn50_8xb32_200e_jpg.py index 10166462..2242f482 100644 --- a/configs/selfsup/simclr/simclr_rn50_8xb32_200e_jpg.py +++ b/configs/selfsup/simclr/simclr_rn50_8xb32_200e_jpg.py @@ -3,7 +3,7 @@ _base_ = '../../base.py' # model settings model = dict( type='SimCLR', - pretrained=None, + pretrained=False, backbone=dict( type='ResNet', depth=50, diff --git a/configs/selfsup/simclr/simclr_rn50_8xb32_200e_tfrecord.py b/configs/selfsup/simclr/simclr_rn50_8xb32_200e_tfrecord.py index c0cb4d05..b35a57ee 100644 --- a/configs/selfsup/simclr/simclr_rn50_8xb32_200e_tfrecord.py +++ b/configs/selfsup/simclr/simclr_rn50_8xb32_200e_tfrecord.py @@ -6,7 +6,7 @@ work_dir = 'work_dir/simclr/' # model settings model = dict( type='SimCLR', - pretrained=None, + pretrained=False, train_preprocess=['randomGrayScale', 'gaussianBlur'], backbone=dict( type='ResNet', diff --git a/configs/selfsup/simclr/simclr_rn50_mocov2_neck_8xb32_200e_jpg.py b/configs/selfsup/simclr/simclr_rn50_mocov2_neck_8xb32_200e_jpg.py index 460e1593..91ab92f8 100644 --- a/configs/selfsup/simclr/simclr_rn50_mocov2_neck_8xb32_200e_jpg.py +++ b/configs/selfsup/simclr/simclr_rn50_mocov2_neck_8xb32_200e_jpg.py @@ -3,7 +3,7 @@ _base_ = '../../base.py' # model settings model = dict( type='SimCLR', - pretrained=None, + pretrained=False, backbone=dict( type='ResNet', depth=50, diff --git a/configs/selfsup/swav/swav_genet_8xb32_200e_tfrecord.py b/configs/selfsup/swav/swav_genet_8xb32_200e_tfrecord.py index ee656037..64ec3c9a 100644 --- a/configs/selfsup/swav/swav_genet_8xb32_200e_tfrecord.py +++ b/configs/selfsup/swav/swav_genet_8xb32_200e_tfrecord.py @@ -6,7 +6,7 @@ num_crops = [2, 6] # model settings model = dict( type='SWAV', - pretrained=None, + pretrained=False, train_preprocess=['randomGrayScale', 'gaussianBlur'], backbone=dict(type='PlainNet', plainnet_struct_idx='normal'), neck=dict( diff --git a/configs/selfsup/swav/swav_rn50_8xb32_200e_tfrecord.py b/configs/selfsup/swav/swav_rn50_8xb32_200e_tfrecord.py index 4de6f348..8c7e1aae 100644 --- a/configs/selfsup/swav/swav_rn50_8xb32_200e_tfrecord.py +++ b/configs/selfsup/swav/swav_rn50_8xb32_200e_tfrecord.py @@ -5,7 +5,7 @@ num_crops = [2, 6] model = dict( type='SWAV', - pretrained=None, + pretrained=False, train_preprocess=['randomGrayScale', 'gaussianBlur'], backbone=dict( type='ResNet', diff --git a/easycv/models/backbones/bninception.py b/easycv/models/backbones/bninception.py index 5c4ad53a..1e8b2010 100644 --- a/easycv/models/backbones/bninception.py +++ b/easycv/models/backbones/bninception.py @@ -9,8 +9,6 @@ from mmcv.cnn import constant_init, kaiming_init from torch import nn from torch.nn.modules.batchnorm import _BatchNorm -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..modelzoo import bninception as model_urls from ..registry import BACKBONES @@ -348,6 +346,9 @@ class BNInception(nn.Module): if num_classes > 0: self.last_linear = nn.Linear(1024, num_classes) + self.default_pretrained_model_path = model_urls[ + self.__class__.__name__] + def init_weights(self): for m in self.modules(): if isinstance(m, nn.Conv2d): diff --git a/easycv/models/backbones/genet.py b/easycv/models/backbones/genet.py index f579c8ec..ee83a17d 100644 --- a/easycv/models/backbones/genet.py +++ b/easycv/models/backbones/genet.py @@ -8,8 +8,6 @@ from mmcv.cnn import constant_init, kaiming_init from torch import nn from torch.nn.modules.batchnorm import _BatchNorm -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..modelzoo import genet as model_urls from ..registry import BACKBONES @@ -1660,6 +1658,9 @@ class PlainNet(nn.Module): self.plainnet_struct = str(self) + str(self.adptive_avg_pool) self.zero_init_residual = False + self.default_pretrained_model_path = model_urls[self.__class__.__name__ + + plainnet_struct_idx] + def init_weights(self): for m in self.modules(): if isinstance(m, nn.Conv2d): diff --git a/easycv/models/backbones/hrnet.py b/easycv/models/backbones/hrnet.py index f8daeec7..90730d02 100644 --- a/easycv/models/backbones/hrnet.py +++ b/easycv/models/backbones/hrnet.py @@ -8,8 +8,7 @@ from mmcv.cnn import (build_conv_layer, build_norm_layer, constant_init, from torch.nn.modules.batchnorm import _BatchNorm from easycv.models.registry import BACKBONES -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger +from ..modelzoo import hrnet as model_urls from .resnet import BasicBlock @@ -592,6 +591,9 @@ class HRNet(nn.Module): multiscale_output=self.stage4_cfg.get('multiscale_output', multi_scale_output)) + self.default_pretrained_model_path = model_urls.get( + self.__class__.__name__ + arch, None) + @property def norm1(self): """nn.Module: the normalization layer named "norm1" """ @@ -718,12 +720,6 @@ class HRNet(nn.Module): return nn.Sequential(*hr_modules), in_channels def init_weights(self): - """Initialize the weights in backbone. - - Args: - pretrained (str, optional): Path to pre-trained weights. - Defaults to None. - """ for m in self.modules(): if isinstance(m, nn.Conv2d): normal_init(m, std=0.001) diff --git a/easycv/models/backbones/inceptionv3.py b/easycv/models/backbones/inceptionv3.py index d6f1b5f1..69f591bb 100644 --- a/easycv/models/backbones/inceptionv3.py +++ b/easycv/models/backbones/inceptionv3.py @@ -11,8 +11,6 @@ import torch.nn.functional as F from mmcv.cnn import constant_init, kaiming_init from torch.nn.modules.batchnorm import _BatchNorm -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..modelzoo import inceptionv3 as model_urls from ..registry import BACKBONES @@ -60,6 +58,9 @@ class Inception3(nn.Module): if num_classes > 0: self.fc = nn.Linear(2048, num_classes) + self.default_pretrained_model_path = model_urls[ + self.__class__.__name__] + def init_weights(self): for m in self.modules(): if isinstance(m, nn.Conv2d) or isinstance(m, nn.Linear): diff --git a/easycv/models/backbones/lighthrnet.py b/easycv/models/backbones/lighthrnet.py index 24db40e0..503f9d24 100644 --- a/easycv/models/backbones/lighthrnet.py +++ b/easycv/models/backbones/lighthrnet.py @@ -12,8 +12,6 @@ from mmcv.cnn import (ConvModule, DepthwiseSeparableConvModule, from torch.nn.modules.batchnorm import _BatchNorm from easycv.models.registry import BACKBONES -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger def channel_shuffle(x, groups): diff --git a/easycv/models/backbones/mnasnet.py b/easycv/models/backbones/mnasnet.py index e1bdfcce..e3bffa38 100644 --- a/easycv/models/backbones/mnasnet.py +++ b/easycv/models/backbones/mnasnet.py @@ -6,8 +6,6 @@ r""" This model is taken from the official PyTorch model zoo. import torch from torch import nn -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..modelzoo import mnasnet as model_urls from ..registry import BACKBONES @@ -144,6 +142,9 @@ class MNASNet(torch.nn.Module): nn.Dropout(p=dropout, inplace=True), nn.Linear(1280, num_classes)) + self.default_pretrained_model_path = model_urls[self.__class__.__name__ + + str(alpha)] + def forward(self, x): x = self.layers(x) # Equivalent to global avgpool and removing H and W dimensions. diff --git a/easycv/models/backbones/mobilenetv2.py b/easycv/models/backbones/mobilenetv2.py index 0f1d8eb2..860b26d9 100644 --- a/easycv/models/backbones/mobilenetv2.py +++ b/easycv/models/backbones/mobilenetv2.py @@ -5,8 +5,6 @@ r""" This model is taken from the official PyTorch model zoo. from torch import nn -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..modelzoo import mobilenetv2 as model_urls from ..registry import BACKBONES @@ -153,8 +151,9 @@ class MobileNetV2(nn.Module): nn.Dropout(0.2), nn.Linear(self.last_channel, num_classes), ) - self.pretrained = model_urls[self.__class__.__name__ + '_' + - str(width_multi)] + self.default_pretrained_model_path = model_urls[self.__class__.__name__ + + '_' + + str(width_multi)] def init_weights(self): for m in self.modules(): diff --git a/easycv/models/backbones/pytorch_image_models_wrapper.py b/easycv/models/backbones/pytorch_image_models_wrapper.py index 8ab85450..2bba3ef7 100644 --- a/easycv/models/backbones/pytorch_image_models_wrapper.py +++ b/easycv/models/backbones/pytorch_image_models_wrapper.py @@ -8,7 +8,6 @@ import torch.nn as nn from timm.models.helpers import load_pretrained from timm.models.hub import download_cached_file -from easycv.utils.checkpoint import load_checkpoint from easycv.utils.logger import get_root_logger, print_log from ..modelzoo import timm_models as model_urls from ..registry import BACKBONES @@ -113,35 +112,37 @@ class PytorchImageModelWrapper(nn.Module): logger = get_root_logger() if pretrained: if self.model_name in self.timm_model_names: - pretrained_path = model_urls[self.model_name] + default_pretrained_model_path = model_urls[self.model_name] print_log( - 'load model from default path: {}'.format(pretrained_path), - logger) - if pretrained_path.endswith('.npz'): + 'load model from default path: {}'.format( + default_pretrained_model_path), logger) + if default_pretrained_model_path.endswith('.npz'): pretrained_loc = download_cached_file( - pretrained_path, check_hash=False, progress=False) + default_pretrained_model_path, + check_hash=False, + progress=False) return self.model.load_pretrained(pretrained_loc) else: backbone_module = importlib.import_module( self.model.__module__) return load_pretrained( self.model, - default_cfg={'url': pretrained_path}, + default_cfg={'url': default_pretrained_model_path}, filter_fn=backbone_module.checkpoint_filter_fn if hasattr(backbone_module, 'checkpoint_filter_fn') else None) elif self.model_name in _MODEL_MAP: if self.model_name in model_urls.keys(): - pretrained_path = model_urls[self.model_name] + default_pretrained_model_path = model_urls[self.model_name] print_log( 'load model from default path: {}'.format( - pretrained_path), logger) + default_pretrained_model_path), logger) try_max = 3 try_idx = 0 while try_idx < try_max: try: state_dict = torch.hub.load_state_dict_from_url( - url=pretrained_path, + url=default_pretrained_model_path, map_location='cpu', ) try_idx += try_max @@ -164,6 +165,7 @@ class PytorchImageModelWrapper(nn.Module): 'Error: Fail to create {} with (pretrained={}...)'.format( self.model_name, pretrained)) else: + print_log('load model from init weights') self.model.init_weights() def forward(self, x): diff --git a/easycv/models/backbones/resnest.py b/easycv/models/backbones/resnest.py index eb16d4e1..13ef9987 100644 --- a/easycv/models/backbones/resnest.py +++ b/easycv/models/backbones/resnest.py @@ -14,8 +14,6 @@ import torch.nn.functional as F from torch.nn import Conv2d, Module, ReLU from torch.nn.modules.utils import _pair -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..registry import BACKBONES diff --git a/easycv/models/backbones/resnet.py b/easycv/models/backbones/resnet.py index 1a0b316c..afb083f9 100644 --- a/easycv/models/backbones/resnet.py +++ b/easycv/models/backbones/resnet.py @@ -4,8 +4,6 @@ import torch.utils.checkpoint as cp from mmcv.cnn import constant_init, kaiming_init from torch.nn.modules.batchnorm import _BatchNorm -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..modelzoo import resnet as model_urls from ..registry import BACKBONES from ..utils import FReLU, build_conv_layer, build_norm_layer @@ -443,6 +441,9 @@ class ResNet(nn.Module): if num_classes > 0: self.fc = nn.Linear(self.feat_dim, num_classes) + self.default_pretrained_model_path = model_urls.get( + self.__class__.__name__ + str(depth), None) + @property def norm1(self): return getattr(self, self.norm1_name) diff --git a/easycv/models/backbones/resnet_jit.py b/easycv/models/backbones/resnet_jit.py index c6f3ceca..0d55e59a 100644 --- a/easycv/models/backbones/resnet_jit.py +++ b/easycv/models/backbones/resnet_jit.py @@ -6,8 +6,6 @@ import torch.nn as nn from mmcv.cnn import constant_init, kaiming_init from torch.nn.modules.batchnorm import _BatchNorm -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..registry import BACKBONES from ..utils import build_conv_layer, build_norm_layer diff --git a/easycv/models/backbones/resnext.py b/easycv/models/backbones/resnext.py index 7e7a7633..ba769909 100644 --- a/easycv/models/backbones/resnext.py +++ b/easycv/models/backbones/resnext.py @@ -3,6 +3,7 @@ import math import torch.nn as nn +from ..modelzoo import resnext as model_urls from ..registry import BACKBONES from ..utils import build_conv_layer, build_norm_layer from .resnet import Bottleneck as _Bottleneck @@ -172,6 +173,7 @@ class ResNeXt(ResNet): self.inplanes = 64 self.res_layers = [] + for i, num_blocks in enumerate(self.stage_blocks): stride = self.strides[i] dilation = self.dilations[i] @@ -196,3 +198,7 @@ class ResNeXt(ResNet): self.res_layers.append(layer_name) self._freeze_stages() + + self.default_pretrained_model_path = model_urls.get( + self.__class__.__name__ + str(self.depth) + '-' + + str(self.groups) + 'x' + str(self.base_width) + 'd', None) diff --git a/easycv/models/backbones/shuffle_transformer.py b/easycv/models/backbones/shuffle_transformer.py index 98067988..965df17e 100644 --- a/easycv/models/backbones/shuffle_transformer.py +++ b/easycv/models/backbones/shuffle_transformer.py @@ -7,8 +7,6 @@ from einops import rearrange from timm.models.layers import DropPath, trunc_normal_ from torch import nn -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..registry import BACKBONES diff --git a/easycv/models/backbones/swin_transformer_dynamic.py b/easycv/models/backbones/swin_transformer_dynamic.py index d7857dbf..b3244a46 100644 --- a/easycv/models/backbones/swin_transformer_dynamic.py +++ b/easycv/models/backbones/swin_transformer_dynamic.py @@ -16,8 +16,6 @@ import torch.nn as nn import torch.nn.functional as F from timm.models.layers import DropPath, to_2tuple, trunc_normal_ -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..registry import BACKBONES diff --git a/easycv/models/backbones/vit_transfomer_dynamic.py b/easycv/models/backbones/vit_transfomer_dynamic.py index 0e2badca..0c7a4123 100644 --- a/easycv/models/backbones/vit_transfomer_dynamic.py +++ b/easycv/models/backbones/vit_transfomer_dynamic.py @@ -15,9 +15,6 @@ import torch.nn as nn # from utils import trunc_normal_ from timm.models.layers import trunc_normal_ -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger - def drop_path(x, drop_prob: float = 0., training: bool = False): if drop_prob == 0. or not training: diff --git a/easycv/models/backbones/xcit_transformer.py b/easycv/models/backbones/xcit_transformer.py index 4c06c5b7..0ee9cf87 100644 --- a/easycv/models/backbones/xcit_transformer.py +++ b/easycv/models/backbones/xcit_transformer.py @@ -19,8 +19,6 @@ import torch.nn as nn from timm.models.layers import DropPath, to_2tuple, trunc_normal_ from timm.models.vision_transformer import Mlp, _cfg -from easycv.utils.checkpoint import load_checkpoint -from easycv.utils.logger import get_root_logger from ..registry import BACKBONES diff --git a/easycv/models/classification/classification.py b/easycv/models/classification/classification.py index a339e560..973b665b 100644 --- a/easycv/models/classification/classification.py +++ b/easycv/models/classification/classification.py @@ -33,7 +33,7 @@ class Classification(BaseModel): with_sobel=False, head=None, neck=None, - pretrained=None, + pretrained=True, mixup_cfg=None): super(Classification, self).__init__() self.with_sobel = with_sobel @@ -110,16 +110,29 @@ class Classification(BaseModel): self.init_weights() def init_weights(self): + logger = get_root_logger() if isinstance(self.pretrained, str): - logger = get_root_logger() load_checkpoint( self.backbone, self.pretrained, strict=False, logger=logger) - else: - print_log('load model from init weights') + elif self.pretrained: if self.backbone.__class__.__name__ == 'PytorchImageModelWrapper': self.backbone.init_weights(pretrained=self.pretrained) + elif hasattr(self.backbone, 'default_pretrained_model_path' + ) and self.backbone.default_pretrained_model_path: + print_log( + 'load model from default path: {}'.format( + self.backbone.default_pretrained_model_path), logger) + load_checkpoint( + self.backbone, + self.backbone.default_pretrained_model_path, + strict=False, + logger=logger) else: + print_log('load model from init weights') self.backbone.init_weights() + else: + print_log('load model from init weights') + self.backbone.init_weights() for idx in range(self.head_num): h = getattr(self, 'head_%d' % idx) diff --git a/easycv/models/modelzoo.py b/easycv/models/modelzoo.py index 9fdd8590..e85d353c 100644 --- a/easycv/models/modelzoo.py +++ b/easycv/models/modelzoo.py @@ -12,6 +12,34 @@ resnet = { 'http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/pretrained_models/easycv/resnet/torchvision/resnet152.pth', } +resnext = { + 'ResNeXt50-32x4d': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/resnext/resnext50-32x4d/epoch_100.pth', + 'ResNeXt101-32x4d': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/resnext/resnext101-32x4d/epoch_100.pth', + 'ResNeXt101-32x8d': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/resnext/resnext101-32x8d/epoch_100.pth', + 'ResNext152-32x4d': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/resnext/resnext152-32x4d/epoch_100.pth', +} + +hrnet = { + 'HRNetw18': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/hrnet/hrnetw18/epoch_100.pth', + 'HRNetw30': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/hrnet/hrnetw30/epoch_100.pth', + 'HRNetw32': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/hrnet/hrnetw32/epoch_100.pth', + 'HRNetw40': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/hrnet/hrnetw40/epoch_100.pth', + 'HRNetw44': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/hrnet/hrnetw44/epoch_100.pth', + 'HRNetw48': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/hrnet/hrnetw48/epoch_100.pth', + 'HRNetw64': + 'https://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/modelzoo/classification/hrnet/hrnetw64/epoch_100.pth', +} + mobilenetv2 = { 'MobileNetV2_1.0': 'http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/pretrained_models/easycv/mobilenetv2/mobilenet_v2.pth',