Git Product home page Git Product logo

efficientnet's Introduction

EfficientNet-Keras

This repository contains a Keras reimplementation of EfficientNet, a lightweight convolutional neural network architecture achieving the state-of-the-art accuracy with an order of magnitude fewer parameters and FLOPS, on both ImageNet and five other commonly used transfer learning datasets.

The codebase is heavily inspired by the TensorFlow implementation.

Table of Contents

  1. About EfficientNet Models
  2. Examples
  3. Models
  4. Installation
  5. Frequently Asked Questions

About EfficientNet Models

EfficientNets rely on AutoML and compound scaling to achieve superior performance without compromising resource efficiency. The AutoML Mobile framework has helped develop a mobile-size baseline network, EfficientNet-B0, which is then improved by the compound scaling method 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 the state-of-the-art 84.4% top-1 / 97.1% top-5 accuracy on ImageNet with 66M parameters and 37B FLOPS. At the same time, the model is 8.4x smaller and 6.1x faster on CPU inference than the former leader, 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 to 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 constraints.

Examples

  • Initializing the model:
from efficientnet import EfficientNetB0

model = EfficientNetB0(weights='imagenet')
  • Loading the pre-trained weights:
from efficientnet import load_model

model = load_model('path/to/model.h5')

See the complete example of loading the model and making an inference in the Jupyter notebook here.

Models

The performance of each model variant using the pre-trained weights converted from checkpoints provided by the authors is as follows:

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 0.8259 0.9612 +
EfficientNetB5 0.8309 0.9646 +
EfficientNetB6 - - -
EfficientNetB7 - - -

* - topK accuracy score for converted models (imagenet val set)

Installation

Requirements

  • keras >= 2.2.0 + tensorflow
  • scikit-image

Installing from the source

pip install -U git+https://github.com/qubvel/efficientnet

Installing from PyPI

pip install -U efficientnet

Frequently Asked Questions

  • How can I convert the original TensorFlow checkpoints to Keras HDF5?

Pick the target directory (like dist) and run the converter script from the repo directory as follows:

./scripts/convert_efficientnet.sh dist
  • Why are B6 and B7 model variants not yet supported?

Weights for B6-B7 have not been made available yet, but might appear soon. Follow the issue for updates.

efficientnet's People

Contributors

clennan avatar qubvel avatar sdll avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.