* add config for resnest test * fix config * add label smoothing * add memcached * minor fix * fix bug * fix config * add config * minor fix * fix configs * use EResize * change interpolation * add more configs * add docsting * add unittest * remove unnecessary changes * minor fix * add more docstring * fix linting * add efficient backbone * add config * add Edge Residual * fix bug * remove unnecessary files * refactor * add resize in crop to ensure crop size is output size * fix bug and add comments * test * fix * add more configs * add more configs * add more configs * fix bug * add model zoo * fix * reorganize code * add edge tpu * add edge tpu converter * rename * update readme * reorganize code and config * Rename configs of EfficientNet, and add metafile & model_zoo * Remove `backend='pillow'` * Add comments about EfficientNet-EdgeTPU * Rename the convert tool of EfficientNet. * Refactor EfficientNet and update docstring. * Update EfficientNet-EdgeTPU config * Fix unit tests Co-authored-by: lixinran <lixr423@outlook.com> Co-authored-by: lixinran <lixinran@sensetime.com> Co-authored-by: mzr1996 <mzr1996@163.com> |
||
---|---|---|
.. | ||
README.md | ||
efficientnet-b0_8xb32-01norm_in1k.py | ||
efficientnet-b0_8xb32_in1k.py | ||
efficientnet-b1_8xb32-01norm_in1k.py | ||
efficientnet-b1_8xb32_in1k.py | ||
efficientnet-b2_8xb32-01norm_in1k.py | ||
efficientnet-b2_8xb32_in1k.py | ||
efficientnet-b3_8xb32-01norm_in1k.py | ||
efficientnet-b3_8xb32_in1k.py | ||
efficientnet-b4_8xb32-01norm_in1k.py | ||
efficientnet-b4_8xb32_in1k.py | ||
efficientnet-b5_8xb32-01norm_in1k.py | ||
efficientnet-b5_8xb32_in1k.py | ||
efficientnet-b6_8xb32-01norm_in1k.py | ||
efficientnet-b6_8xb32_in1k.py | ||
efficientnet-b7_8xb32-01norm_in1k.py | ||
efficientnet-b7_8xb32_in1k.py | ||
efficientnet-b8_8xb32-01norm_in1k.py | ||
efficientnet-b8_8xb32_in1k.py | ||
efficientnet-em_8xb32-01norm_in1k.py | ||
efficientnet-es_8xb32-01norm_in1k.py | ||
metafile.yml |
README.md
Rethinking Model Scaling for Convolutional Neural Networks
Abstract
Convolutional Neural Networks (ConvNets) are commonly developed at a fixed resource budget, and then scaled up for better accuracy if more resources are available. In this paper, we systematically study model scaling and identify that carefully balancing network depth, width, and resolution can lead to better performance. Based on this observation, we propose a new scaling method that uniformly scales all dimensions of depth/width/resolution using a simple yet highly effective compound coefficient. We demonstrate the effectiveness of this method on scaling up MobileNets and ResNet. To go even further, we use neural architecture search to design a new baseline network and scale it up to obtain a family of models, called EfficientNets, which achieve much better accuracy and efficiency than previous ConvNets. In particular, our EfficientNet-B7 achieves state-of-the-art 84.3% top-1 accuracy on ImageNet, while being 8.4x smaller and 6.1x faster on inference than the best existing ConvNet. Our EfficientNets also transfer well and achieve state-of-the-art accuracy on CIFAR-100 (91.7%), Flowers (98.8%), and 3 other transfer learning datasets, with an order of magnitude fewer parameters.

Citation
@inproceedings{tan2019efficientnet,
title={Efficientnet: Rethinking model scaling for convolutional neural networks},
author={Tan, Mingxing and Le, Quoc},
booktitle={International Conference on Machine Learning},
pages={6105--6114},
year={2019},
organization={PMLR}
}
Results and models
ImageNet-1k
In the result table, AA means trained with AutoAugment pre-processing, more details can be found in the paper, and AdvProp is a method to train with adversarial examples, more details can be found in the paper.
Note: In MMClassification, we support training with AutoAugment, don't support AdvProp by now.
Model | Params(M) | Flops(G) | Top-1 (%) | Top-5 (%) | Config | Download |
---|---|---|---|---|---|---|
EfficientNet-B0* | 5.29 | 0.02 | 76.74 | 93.17 | config | model |
EfficientNet-B0 (AA)* | 5.29 | 0.02 | 77.26 | 93.41 | config | model |
EfficientNet-B0 (AA + AdvProp)* | 5.29 | 0.02 | 77.53 | 93.61 | config | model |
EfficientNet-B1* | 7.79 | 0.03 | 78.68 | 94.28 | config | model |
EfficientNet-B1 (AA)* | 7.79 | 0.03 | 79.20 | 94.42 | config | model |
EfficientNet-B1 (AA + AdvProp)* | 7.79 | 0.03 | 79.52 | 94.43 | config | model |
EfficientNet-B2* | 9.11 | 0.03 | 79.64 | 94.80 | config | model |
EfficientNet-B2 (AA)* | 9.11 | 0.03 | 80.21 | 94.96 | config | model |
EfficientNet-B2 (AA + AdvProp)* | 9.11 | 0.03 | 80.45 | 95.07 | config | model |
EfficientNet-B3* | 12.23 | 0.06 | 81.01 | 95.34 | config | model |
EfficientNet-B3 (AA)* | 12.23 | 0.06 | 81.58 | 95.67 | config | model |
EfficientNet-B3 (AA + AdvProp)* | 12.23 | 0.06 | 81.81 | 95.69 | config | model |
EfficientNet-B4* | 19.34 | 0.12 | 82.57 | 96.09 | config | model |
EfficientNet-B4 (AA)* | 19.34 | 0.12 | 82.95 | 96.26 | config | model |
EfficientNet-B4 (AA + AdvProp)* | 19.34 | 0.12 | 83.25 | 96.44 | config | model |
EfficientNet-B5* | 30.39 | 0.24 | 83.18 | 96.47 | config | model |
EfficientNet-B5 (AA)* | 30.39 | 0.24 | 83.82 | 96.76 | config | model |
EfficientNet-B5 (AA + AdvProp)* | 30.39 | 0.24 | 84.21 | 96.98 | config | model |
EfficientNet-B6 (AA)* | 43.04 | 0.41 | 84.05 | 96.82 | config | model |
EfficientNet-B6 (AA + AdvProp)* | 43.04 | 0.41 | 84.74 | 97.14 | config | model |
EfficientNet-B7 (AA)* | 66.35 | 0.72 | 84.38 | 96.88 | config | model |
EfficientNet-B7 (AA + AdvProp)* | 66.35 | 0.72 | 85.14 | 97.23 | config | model |
EfficientNet-B8 (AA + AdvProp)* | 87.41 | 1.09 | 85.38 | 97.28 | config | model |
Models with * are converted from the official repo. The config files of these models are only for inference. We don't ensure these config files' training accuracy and welcome you to contribute your reproduction results.