efficientnet_keras_transfer_learning
efficientnet_keras_transfer_learning copied to clipboard
Transfer Learning with EfficientNet in Keras
EfficientNet-Keras
This repository contains Keras reimplementation of EfficientNet, the new convolutional neural network architecture from EfficientNet (TensorFlow implementation).
Table of content
- About EfficientNets
- Examples
- Models
- Installation
About EfficientNet Models
If you're new to EfficientNets, here is an explanation straight from the official TensorFlow implementation:
EfficientNets are a family of image classification models, which achieve state-of-the-art accuracy, yet being an order-of-magnitude smaller and faster than previous models. EfficientNets are based on AutoML and Compound Scaling. In particular, AutoML Mobile framework have been used to develop a mobile-size baseline network, named as EfficientNet-B0; Then, the compound scaling method is used to scale up this baseline to obtain EfficientNet-B1 to B7.
![]() |
![]() |
EfficientNets achieve state-of-the-art accuracy on ImageNet with an order of magnitude better efficiency:
-
In high-accuracy regime, EfficientNet-B7 achieves state-of-the-art 84.4% top-1 / 97.1% top-5 accuracy on ImageNet with 66M parameters and 37B FLOPS, being 8.4x smaller and 6.1x faster on CPU inference than previous best Gpipe.
-
In middle-accuracy regime, EfficientNet-B1 is 7.6x smaller and 5.7x faster on CPU inference than ResNet-152, with similar ImageNet accuracy.
-
Compared with the widely used ResNet-50, EfficientNet-B4 improves the top-1 accuracy from 76.3% of ResNet-50 to 82.6% (+6.3%), under similar FLOPS constraint.
Examples
- Two lines to create model:
from efficientnet import EfficientNetB0
model = EfficientNetB0(weights='imagenet')
-
Inference example:
inference_example.ipynb -
Loading saved model:
from efficientnet import load_model
model = load_model('path/to/model.h5')
Models
Available architectures and pretrained weights (converted from original repo):
Architecture | @top1* | @top5* | Weights |
---|---|---|---|
EfficientNetB0 | 0.7668 | 0.9312 | + |
EfficientNetB1 | 0.7863 | 0.9418 | + |
EfficientNetB2 | 0.7968 | 0.9475 | + |
EfficientNetB3 | 0.8083 | 0.9531 | + |
EfficientNetB4 | - | - | - |
EfficientNetB5 | - | - | - |
EfficientNetB6 | - | - | - |
EfficientNetB7 | - | - | - |
"*" - topK accuracy score for converted models (imagenet val
set)
Weights for B4-B7 are not released yet (issue).
Installation
Requirements:
- keras >= 2.2.0 (tensorflow)
- scikit-image
Source:
$ pip install -U git+https://github.com/qubvel/efficientnet
PyPI:
$ pip install -U efficientnet