Skip to content

Commit 328249f

Browse files
committed
Update README, tweak fine-tune effv2 model names.
1 parent c4f482a commit 328249f

File tree

3 files changed

+39
-20
lines changed

3 files changed

+39
-20
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,15 @@ I'm fortunate to be able to dedicate significant time and money of my own suppor
2323

2424
## What's New
2525

26+
### May 14, 2021
27+
* Add EfficientNet-V2 official model defs w/ ported weights from official [Tensorflow/Keras](https://github.com/google/automl/tree/master/efficientnetv2) impl.
28+
* 1k trained variants: `tf_efficientnetv2_s/m/l`
29+
* 21k trained variants: `tf_efficientnetv2_s/m/l_21k`
30+
* 21k pretrained -> 1k fine-tuned: `tf_efficientnetv2_s/m/l_21ft1k`
31+
* v2 models w/ v1 scaling: `tf_efficientnet_v2_b0` through `b3`
32+
* Rename my prev V2 guess `efficientnet_v2s` -> `efficientnetv2_rw_s`
33+
* Some blank `efficientnetv2_*` models in-place for future native PyTorch training
34+
2635
### May 5, 2021
2736
* Add MLP-Mixer models and port pretrained weights from [Google JAX impl](https://github.com/google-research/vision_transformer/tree/linen)
2837
* Add CaiT models and pretrained weights from [FB](https://github.com/facebookresearch/deit)

timm/models/efficientnet.py

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
""" PyTorch EfficientNet Family
1+
""" The EfficientNet Family in PyTorch
22
33
An implementation of EfficienNet that covers variety of related models with efficient architectures:
44
@@ -25,6 +25,10 @@
2525
2626
* And likely more...
2727
28+
The majority of the above models (EfficientNet*, MixNet, MnasNet) and original weights were made available
29+
by Mingxing Tan, Quoc Le, and other members of their Google Brain team. Thanks for consistently releasing
30+
the models and weights open source!
31+
2832
Hacked together by / Copyright 2021 Ross Wightman
2933
"""
3034
from functools import partial
@@ -328,16 +332,16 @@ def _cfg(url='', **kwargs):
328332
mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5),
329333
input_size=(3, 384, 384), test_input_size=(3, 480, 480), pool_size=(12, 12), crop_pct=1.0),
330334

331-
'tf_efficientnetv2_s_21kft1k': _cfg(
332-
url='https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-effv2-weights/tf_efficientnetv2_s_21kft1k-d7dafa41.pth',
335+
'tf_efficientnetv2_s_21ft1k': _cfg(
336+
url='https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-effv2-weights/tf_efficientnetv2_s_21ft1k-d7dafa41.pth',
333337
mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5),
334338
input_size=(3, 300, 300), test_input_size=(3, 384, 384), pool_size=(10, 10), crop_pct=1.0),
335-
'tf_efficientnetv2_m_21kft1k': _cfg(
336-
url='https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-effv2-weights/tf_efficientnetv2_m_21kft1k-bf41664a.pth',
339+
'tf_efficientnetv2_m_21ft1k': _cfg(
340+
url='https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-effv2-weights/tf_efficientnetv2_m_21ft1k-bf41664a.pth',
337341
mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5),
338342
input_size=(3, 384, 384), test_input_size=(3, 480, 480), pool_size=(12, 12), crop_pct=1.0),
339-
'tf_efficientnetv2_l_21kft1k': _cfg(
340-
url='https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-effv2-weights/tf_efficientnetv2_l_21kft1k-60127a9d.pth',
343+
'tf_efficientnetv2_l_21ft1k': _cfg(
344+
url='https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-effv2-weights/tf_efficientnetv2_l_21ft1k-60127a9d.pth',
341345
mean=(0.5, 0.5, 0.5), std=(0.5, 0.5, 0.5),
342346
input_size=(3, 384, 384), test_input_size=(3, 480, 480), pool_size=(12, 12), crop_pct=1.0),
343347

@@ -1925,35 +1929,39 @@ def tf_efficientnetv2_l(pretrained=False, **kwargs):
19251929

19261930

19271931
@register_model
1928-
def tf_efficientnetv2_s_21kft1k(pretrained=False, **kwargs):
1929-
""" EfficientNet-V2 Small. Tensorflow compatible variant """
1932+
def tf_efficientnetv2_s_21ft1k(pretrained=False, **kwargs):
1933+
""" EfficientNet-V2 Small. Pretrained on ImageNet-21k, fine-tuned on 1k. Tensorflow compatible variant
1934+
"""
19301935
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
19311936
kwargs['pad_type'] = 'same'
1932-
model = _gen_efficientnetv2_s('tf_efficientnetv2_s_21kft1k', pretrained=pretrained, **kwargs)
1937+
model = _gen_efficientnetv2_s('tf_efficientnetv2_s_21ft1k', pretrained=pretrained, **kwargs)
19331938
return model
19341939

19351940

19361941
@register_model
1937-
def tf_efficientnetv2_m_21kft1k(pretrained=False, **kwargs):
1938-
""" EfficientNet-V2 Medium. Tensorflow compatible variant """
1942+
def tf_efficientnetv2_m_21ft1k(pretrained=False, **kwargs):
1943+
""" EfficientNet-V2 Medium. Pretrained on ImageNet-21k, fine-tuned on 1k. Tensorflow compatible variant
1944+
"""
19391945
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
19401946
kwargs['pad_type'] = 'same'
1941-
model = _gen_efficientnetv2_m('tf_efficientnetv2_m_21kft1k', pretrained=pretrained, **kwargs)
1947+
model = _gen_efficientnetv2_m('tf_efficientnetv2_m_21ft1k', pretrained=pretrained, **kwargs)
19421948
return model
19431949

19441950

19451951
@register_model
1946-
def tf_efficientnetv2_l_21kft1k(pretrained=False, **kwargs):
1947-
""" EfficientNet-V2 Large. Tensorflow compatible variant """
1952+
def tf_efficientnetv2_l_21ft1k(pretrained=False, **kwargs):
1953+
""" EfficientNet-V2 Large. Pretrained on ImageNet-21k, fine-tuned on 1k. Tensorflow compatible variant
1954+
"""
19481955
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
19491956
kwargs['pad_type'] = 'same'
1950-
model = _gen_efficientnetv2_l('tf_efficientnetv2_l_21kft1k', pretrained=pretrained, **kwargs)
1957+
model = _gen_efficientnetv2_l('tf_efficientnetv2_l_21ft1k', pretrained=pretrained, **kwargs)
19511958
return model
19521959

19531960

19541961
@register_model
19551962
def tf_efficientnetv2_s_21k(pretrained=False, **kwargs):
1956-
""" EfficientNet-V2 Small w/ ImageNet-21k pretrained weights. Tensorflow compatible variant """
1963+
""" EfficientNet-V2 Small w/ ImageNet-21k pretrained weights. Tensorflow compatible variant
1964+
"""
19571965
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
19581966
kwargs['pad_type'] = 'same'
19591967
model = _gen_efficientnetv2_s('tf_efficientnetv2_s_21k', pretrained=pretrained, **kwargs)
@@ -1962,7 +1970,8 @@ def tf_efficientnetv2_s_21k(pretrained=False, **kwargs):
19621970

19631971
@register_model
19641972
def tf_efficientnetv2_m_21k(pretrained=False, **kwargs):
1965-
""" EfficientNet-V2 Medium w/ ImageNet-21k pretrained weights. Tensorflow compatible variant """
1973+
""" EfficientNet-V2 Medium w/ ImageNet-21k pretrained weights. Tensorflow compatible variant
1974+
"""
19661975
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
19671976
kwargs['pad_type'] = 'same'
19681977
model = _gen_efficientnetv2_m('tf_efficientnetv2_m_21k', pretrained=pretrained, **kwargs)
@@ -1971,7 +1980,8 @@ def tf_efficientnetv2_m_21k(pretrained=False, **kwargs):
19711980

19721981
@register_model
19731982
def tf_efficientnetv2_l_21k(pretrained=False, **kwargs):
1974-
""" EfficientNet-V2 Large w/ ImageNet-21k pretrained weights. Tensorflow compatible variant """
1983+
""" EfficientNet-V2 Large w/ ImageNet-21k pretrained weights. Tensorflow compatible variant
1984+
"""
19751985
kwargs['bn_eps'] = BN_EPS_TF_DEFAULT
19761986
kwargs['pad_type'] = 'same'
19771987
model = _gen_efficientnetv2_l('tf_efficientnetv2_l_21k', pretrained=pretrained, **kwargs)

timm/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = '0.4.8'
1+
__version__ = '0.4.9'

0 commit comments

Comments
 (0)