EfficientNet, but make it Keras (and tf.keras too)
A Keras and tf.keras reimplementation of EfficientNet with converted pre-trained weights for all eight B0–B7 variants.

What it does This repository ports Google’s EfficientNet architecture—a family of convolutional networks built by compound-scaling a mobile-size baseline—to Keras and TensorFlow Keras. It provides eight model variants (B0 through B7) with pre-trained weights converted from the original TensorFlow TPU checkpoints, ready for standard Keras inference or transfer learning.
The interesting bit
The library functions as a bilingual adapter: it exposes the same models through both legacy keras and modern tensorflow.keras namespaces, a compatibility pivot significant enough to break backward compatibility in 2019. It also includes the weight-conversion plumbing, so the community isn’t stuck waiting for official Keras HDF5s.
Key highlights
- Pre-trained weights for all eight EfficientNet variants, including standard ImageNet and the stronger Noisy Student semi-supervised checkpoints.
- Converted weights hit the expected top-1 accuracy marks on ImageNet validation; B7 reaches 0.844 (standard) and 0.869 (Noisy Student).
- Supports both legacy Keras and
tf.kerasworkflows via separate module paths (efficientnet.kerasandefficientnet.tfkeras). - Bundles a shell script to convert original TensorFlow TPU checkpoints into Keras-compatible HDF5 weights.
Caveats
- Models saved before the July 2019 refactor require pinning to version
0.0.4; the update broke backward compatibility. - Loading a saved model requires first importing the specific module (
efficientnet.kerasorefficientnet.tfkeras) used during training, because the implementation relies on custom objects. - The codebase is explicitly described as “heavily inspired by” Google’s TPU reference rather than an independent rewrite.
Verdict Grab it if you need EfficientNet in a Keras or tf.keras pipeline. Skip it if you live in PyTorch or Google’s native TPU ecosystem.
Frequently asked
- What is qubvel/efficientnet?
- A Keras and tf.keras reimplementation of EfficientNet with converted pre-trained weights for all eight B0–B7 variants.
- Is efficientnet open source?
- Yes — qubvel/efficientnet is open source, released under the Apache-2.0 license.
- What language is efficientnet written in?
- qubvel/efficientnet is primarily written in Python.
- How popular is efficientnet?
- qubvel/efficientnet has 2.1k stars on GitHub.
- Where can I find efficientnet?
- qubvel/efficientnet is on GitHub at https://github.com/qubvel/efficientnet.