finds.dev← search

// the find

rwightman/gen-efficientnet-pytorch

★ 1,577 · Python · Apache-2.0 · updated Jun 2024

Pretrained EfficientNet, EfficientNet-Lite, MixNet, MobileNetV3 / V2, MNASNet A1 and B1, FBNet, Single-Path NAS

A generic PyTorch implementation that covers the whole MobileNet-derived family — EfficientNet (including NoisyStudent/AdvProp/CondConv/Lite variants), MixNet, MobileNetV3/V2, MNASNet, FBNet, and Single-Path NAS — using one string-based config format to describe block layouts instead of a separate file per architecture. It's for someone who wants a lightweight pretrained backbone and doesn't need anything timm doesn't already cover better.

The string-based architecture definition (block args as a compact DSL) is a genuinely good idea — one builder handles a dozen architecture families instead of copy-pasted model files. The ported TF weights are validated against the original Tensorflow top-1/top-5 numbers in a real table, not just claimed. The ONNX/Caffe2 export pipeline (export, optimize, validate against onnxruntime, convert to Caffe2, benchmark FLOPs) is more complete than most research repos bother with.

The README's first line is a note telling you not to use this and to go use timm instead — the author abandoned it in favor of a successor repo, so you're adopting something its own maintainer disowns. Dependency pins are ancient: tested only against PyTorch 1.4–1.6 and Python 3.6–3.8, with no CI to tell you if it still works on anything current. The export notes openly admit SAME-padding models can't export without a global flag flip and that ONNX/Caffe2 compatibility breaks across version bumps — this is fragile glue code, not a stable tool. No test suite at all, just a validate.py script that needs an ImageNet directory to prove anything works.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →