Skip to content

Commit 6ca0828

Browse files
committed
Update EfficientNet comments, MobileNetV3 non-TF create fns, fix factory arg checks, bump PyTorch version req to 1.2
1 parent eccbadc commit 6ca0828

File tree

4 files changed

+51
-36
lines changed

4 files changed

+51
-36
lines changed

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
torch>=1.1.0
2-
torchvision>=0.3.0
1+
torch>=1.2.0
2+
torchvision>=0.4.0
33
pyyaml

timm/models/efficientnet.py

Lines changed: 16 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -845,8 +845,7 @@ def spnasnet_100(pretrained=False, **kwargs):
845845
@register_model
846846
def efficientnet_b0(pretrained=False, **kwargs):
847847
""" EfficientNet-B0 """
848-
# NOTE for train, drop_rate should be 0.2
849-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
848+
# NOTE for train, drop_rate should be 0.2, drop_connect_rate should be 0.2
850849
model = _gen_efficientnet(
851850
'efficientnet_b0', channel_multiplier=1.0, depth_multiplier=1.0, pretrained=pretrained, **kwargs)
852851
return model
@@ -855,8 +854,7 @@ def efficientnet_b0(pretrained=False, **kwargs):
855854
@register_model
856855
def efficientnet_b1(pretrained=False, **kwargs):
857856
""" EfficientNet-B1 """
858-
# NOTE for train, drop_rate should be 0.2
859-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
857+
# NOTE for train, drop_rate should be 0.2, drop_connect_rate should be 0.2
860858
model = _gen_efficientnet(
861859
'efficientnet_b1', channel_multiplier=1.0, depth_multiplier=1.1, pretrained=pretrained, **kwargs)
862860
return model
@@ -865,8 +863,7 @@ def efficientnet_b1(pretrained=False, **kwargs):
865863
@register_model
866864
def efficientnet_b2(pretrained=False, **kwargs):
867865
""" EfficientNet-B2 """
868-
# NOTE for train, drop_rate should be 0.3
869-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
866+
# NOTE for train, drop_rate should be 0.3, drop_connect_rate should be 0.2
870867
model = _gen_efficientnet(
871868
'efficientnet_b2', channel_multiplier=1.1, depth_multiplier=1.2, pretrained=pretrained, **kwargs)
872869
return model
@@ -875,8 +872,7 @@ def efficientnet_b2(pretrained=False, **kwargs):
875872
@register_model
876873
def efficientnet_b3(pretrained=False, **kwargs):
877874
""" EfficientNet-B3 """
878-
# NOTE for train, drop_rate should be 0.3
879-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
875+
# NOTE for train, drop_rate should be 0.3, drop_connect_rate should be 0.2
880876
model = _gen_efficientnet(
881877
'efficientnet_b3', channel_multiplier=1.2, depth_multiplier=1.4, pretrained=pretrained, **kwargs)
882878
return model
@@ -885,8 +881,7 @@ def efficientnet_b3(pretrained=False, **kwargs):
885881
@register_model
886882
def efficientnet_b4(pretrained=False, **kwargs):
887883
""" EfficientNet-B4 """
888-
# NOTE for train, drop_rate should be 0.4
889-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
884+
# NOTE for train, drop_rate should be 0.4, drop_connect_rate should be 0.2
890885
model = _gen_efficientnet(
891886
'efficientnet_b4', channel_multiplier=1.4, depth_multiplier=1.8, pretrained=pretrained, **kwargs)
892887
return model
@@ -895,8 +890,7 @@ def efficientnet_b4(pretrained=False, **kwargs):
895890
@register_model
896891
def efficientnet_b5(pretrained=False, **kwargs):
897892
""" EfficientNet-B5 """
898-
# NOTE for train, drop_rate should be 0.4
899-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
893+
# NOTE for train, drop_rate should be 0.4, drop_connect_rate should be 0.2
900894
model = _gen_efficientnet(
901895
'efficientnet_b5', channel_multiplier=1.6, depth_multiplier=2.2, pretrained=pretrained, **kwargs)
902896
return model
@@ -905,8 +899,7 @@ def efficientnet_b5(pretrained=False, **kwargs):
905899
@register_model
906900
def efficientnet_b6(pretrained=False, **kwargs):
907901
""" EfficientNet-B6 """
908-
# NOTE for train, drop_rate should be 0.5
909-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
902+
# NOTE for train, drop_rate should be 0.5, drop_connect_rate should be 0.2
910903
model = _gen_efficientnet(
911904
'efficientnet_b6', channel_multiplier=1.8, depth_multiplier=2.6, pretrained=pretrained, **kwargs)
912905
return model
@@ -915,8 +908,7 @@ def efficientnet_b6(pretrained=False, **kwargs):
915908
@register_model
916909
def efficientnet_b7(pretrained=False, **kwargs):
917910
""" EfficientNet-B7 """
918-
# NOTE for train, drop_rate should be 0.5
919-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
911+
# NOTE for train, drop_rate should be 0.5, drop_connect_rate should be 0.2
920912
model = _gen_efficientnet(
921913
'efficientnet_b7', channel_multiplier=2.0, depth_multiplier=3.1, pretrained=pretrained, **kwargs)
922914
return model
@@ -949,8 +941,7 @@ def efficientnet_el(pretrained=False, **kwargs):
949941
@register_model
950942
def efficientnet_cc_b0_4e(pretrained=False, **kwargs):
951943
""" EfficientNet-CondConv-B0 w/ 8 Experts """
952-
# NOTE for train, drop_rate should be 0.2
953-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
944+
# NOTE for train, drop_rate should be 0.2, drop_connect_rate should be 0.2
954945
model = _gen_efficientnet_condconv(
955946
'efficientnet_cc_b0_4e', channel_multiplier=1.0, depth_multiplier=1.0, pretrained=pretrained, **kwargs)
956947
return model
@@ -959,8 +950,7 @@ def efficientnet_cc_b0_4e(pretrained=False, **kwargs):
959950
@register_model
960951
def efficientnet_cc_b0_8e(pretrained=False, **kwargs):
961952
""" EfficientNet-CondConv-B0 w/ 8 Experts """
962-
# NOTE for train, drop_rate should be 0.2
963-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
953+
# NOTE for train, drop_rate should be 0.2, drop_connect_rate should be 0.2
964954
model = _gen_efficientnet_condconv(
965955
'efficientnet_cc_b0_8e', channel_multiplier=1.0, depth_multiplier=1.0, experts_multiplier=2,
966956
pretrained=pretrained, **kwargs)
@@ -969,8 +959,7 @@ def efficientnet_cc_b0_8e(pretrained=False, **kwargs):
969959
@register_model
970960
def efficientnet_cc_b1_8e(pretrained=False, **kwargs):
971961
""" EfficientNet-CondConv-B1 w/ 8 Experts """
972-
# NOTE for train, drop_rate should be 0.2
973-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
962+
# NOTE for train, drop_rate should be 0.2, drop_connect_rate should be 0.2
974963
model = _gen_efficientnet_condconv(
975964
'efficientnet_cc_b1_8e', channel_multiplier=1.0, depth_multiplier=1.1, experts_multiplier=2,
976965
pretrained=pretrained, **kwargs)
@@ -1008,7 +997,7 @@ def tf_efficientnet_b2(pretrained=False, **kwargs):
1008997

1009998

1010999
@register_model
1011-
def tf_efficientnet_b3(pretrained=False, num_classes=1000, in_chans=3, **kwargs):
1000+
def tf_efficientnet_b3(pretrained=False, **kwargs):
10121001
""" EfficientNet-B3. Tensorflow compatible variant """
10131002
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
10141003
kwargs['pad_type'] = 'same'
@@ -1090,7 +1079,7 @@ def tf_efficientnet_b2_ap(pretrained=False, **kwargs):
10901079

10911080

10921081
@register_model
1093-
def tf_efficientnet_b3_ap(pretrained=False, num_classes=1000, in_chans=3, **kwargs):
1082+
def tf_efficientnet_b3_ap(pretrained=False, **kwargs):
10941083
""" EfficientNet-B3. Tensorflow compatible variant """
10951084
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
10961085
kwargs['pad_type'] = 'same'
@@ -1186,8 +1175,7 @@ def tf_efficientnet_el(pretrained=False, **kwargs):
11861175
@register_model
11871176
def tf_efficientnet_cc_b0_4e(pretrained=False, **kwargs):
11881177
""" EfficientNet-CondConv-B0 w/ 4 Experts. Tensorflow compatible variant """
1189-
# NOTE for train, drop_rate should be 0.2
1190-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
1178+
# NOTE for train, drop_rate should be 0.2, drop_connect_rate should be 0.2
11911179
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
11921180
kwargs['pad_type'] = 'same'
11931181
model = _gen_efficientnet_condconv(
@@ -1198,8 +1186,7 @@ def tf_efficientnet_cc_b0_4e(pretrained=False, **kwargs):
11981186
@register_model
11991187
def tf_efficientnet_cc_b0_8e(pretrained=False, **kwargs):
12001188
""" EfficientNet-CondConv-B0 w/ 8 Experts. Tensorflow compatible variant """
1201-
# NOTE for train, drop_rate should be 0.2
1202-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
1189+
# NOTE for train, drop_rate should be 0.2, drop_connect_rate should be 0.2
12031190
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
12041191
kwargs['pad_type'] = 'same'
12051192
model = _gen_efficientnet_condconv(
@@ -1210,8 +1197,7 @@ def tf_efficientnet_cc_b0_8e(pretrained=False, **kwargs):
12101197
@register_model
12111198
def tf_efficientnet_cc_b1_8e(pretrained=False, **kwargs):
12121199
""" EfficientNet-CondConv-B1 w/ 8 Experts. Tensorflow compatible variant """
1213-
# NOTE for train, drop_rate should be 0.2
1214-
#kwargs['drop_connect_rate'] = 0.2 # set when training, TODO add as cmd arg
1200+
# NOTE for train, drop_rate should be 0.2, drop_connect_rate should be 0.2
12151201
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
12161202
kwargs['pad_type'] = 'same'
12171203
model = _gen_efficientnet_condconv(
@@ -1262,7 +1248,6 @@ def mixnet_xxl(pretrained=False, **kwargs):
12621248
"""Creates a MixNet Double Extra Large model.
12631249
Not a paper spec, experimental def by RW w/ depth scaling.
12641250
"""
1265-
# kwargs['drop_connect_rate'] = 0.2
12661251
model = _gen_mixnet_m(
12671252
'mixnet_xxl', channel_multiplier=2.4, depth_multiplier=1.3, pretrained=pretrained, **kwargs)
12681253
return model

timm/models/factory.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ def create_model(
2525
"""
2626
margs = dict(pretrained=pretrained, num_classes=num_classes, in_chans=in_chans)
2727

28-
# Only gen_efficientnet models have support for batchnorm params or drop_connect_rate passed as args
29-
is_efficientnet = is_model_in_modules(model_name, ['gen_efficientnet'])
28+
# Only EfficientNet and MobileNetV3 models have support for batchnorm params or drop_connect_rate passed as args
29+
is_efficientnet = is_model_in_modules(model_name, ['efficientnet', 'mobilenetv3'])
3030
if not is_efficientnet:
3131
kwargs.pop('bn_tf', None)
3232
kwargs.pop('bn_momentum', None)

timm/models/mobilenetv3.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ def _cfg(url='', **kwargs):
3535
default_cfgs = {
3636
'mobilenetv3_large_075': _cfg(url=''),
3737
'mobilenetv3_large_100': _cfg(url=''),
38+
'mobilenetv3_small_075': _cfg(url=''),
39+
'mobilenetv3_small_100': _cfg(url=''),
3840
'mobilenetv3_rw': _cfg(
3941
url='https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/mobilenetv3_100-35495452.pth',
4042
interpolation='bicubic'),
@@ -374,6 +376,35 @@ def _gen_mobilenet_v3(variant, channel_multiplier=1.0, pretrained=False, **kwarg
374376
return model
375377

376378

379+
@register_model
380+
def mobilenetv3_large_075(pretrained=False, **kwargs):
381+
""" MobileNet V3 """
382+
model = _gen_mobilenet_v3('mobilenetv3_large_075', 0.75, pretrained=pretrained, **kwargs)
383+
return model
384+
385+
386+
@register_model
387+
def mobilenetv3_large_100(pretrained=False, **kwargs):
388+
""" MobileNet V3 """
389+
model = _gen_mobilenet_v3('mobilenetv3_large_100', 1.0, pretrained=pretrained, **kwargs)
390+
return model
391+
392+
393+
@register_model
394+
def mobilenetv3_small_075(pretrained=False, **kwargs):
395+
""" MobileNet V3 """
396+
model = _gen_mobilenet_v3('mobilenetv3_small_075', 0.75, pretrained=pretrained, **kwargs)
397+
return model
398+
399+
400+
@register_model
401+
def mobilenetv3_small_100(pretrained=False, **kwargs):
402+
print(kwargs)
403+
""" MobileNet V3 """
404+
model = _gen_mobilenet_v3('mobilenetv3_small_100', 1.0, pretrained=pretrained, **kwargs)
405+
return model
406+
407+
377408
@register_model
378409
def mobilenetv3_rw(pretrained=False, **kwargs):
379410
""" MobileNet V3 """
@@ -384,7 +415,6 @@ def mobilenetv3_rw(pretrained=False, **kwargs):
384415
return model
385416

386417

387-
388418
@register_model
389419
def tf_mobilenetv3_large_075(pretrained=False, **kwargs):
390420
""" MobileNet V3 """

0 commit comments

Comments
 (0)