finds.dev← search

// the find

rwightman/efficientdet-pytorch

★ 1,655 · Python · Apache-2.0 · updated Aug 2024

A PyTorch impl of EfficientDet faithful to the original Google impl w/ ported weights

A PyTorch reimplementation of EfficientDet that ports Google's official TensorFlow weights and reproduces their mAP numbers, built by the same author as timm. It's for people who want a faithful, hackable EfficientDet baseline for object detection (or segmentation experiments) rather than a general-purpose detection framework.

The ported weights are validated against the official TF numbers across D0-D7X on COCO val2017 and test-dev, so you're not trusting an approximate reimplementation. Architecture is genuinely configurable: BiFPN topology, depthwise vs standard convs, activation/norm swapping, and any timm backbone with features_only support can be dropped in. It supports COCO, VOC, and OpenImages through a proper parser abstraction, with native PyTorch DDP/SyncBN/AMP rather than relying on Apex. The changelog is unusually candid about failure modes, e.g. documenting that sync-bn plus EMA causes some backbones (CspResNeXt, VoVNet) to silently produce garbage eval stats despite normal-looking training loss.

Development has effectively stopped — the changelog's last real entry is 2023-05-21 despite a 2024 push, and TODOs like Mosaic augmentation, bbox IoU losses, and Detectron2/MMDetection integration have sat unchecked for years. The environment is pinned to an old stack: PyTorch 1.6-1.10, Python 3.7-3.9, and a hard numpy<1.17.5 workaround for a pycocotools bug, so getting this running on a current environment will take real effort. There's no tests directory or CI visible, so correctness depends entirely on the author's manual COCO validation runs rather than anything automated. The author states plainly in the README that he won't debug issues on custom datasets without a public, reproducible fork — support is minimal and on his terms.

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 →