mapbox / mapbox/robosat

Implement EfficientNet backbone

Open
#172 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
2.1k
Forks
385
PR merge metrics
No merged PRs in 30d

Description

This recently came out

https://arxiv.org/abs/1905.11946

> EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

with incredible practical implications: we can either get a much better backbone than our current resnet50 for the same computational budget or get a highly computationally efficient backbone and roughly keep the resnet50's prediction performance.

Here's why we should look into this
- it's simple and easy to implement
- it provides huge practical engineering gains we care about (size, runtime)
- the accuracy is same or higher (depending on EfficientNet model)

Check out the paper's table 2 (below) for comparisons; we are currently using a resnet50.

I highlighted
- the resnet50 we are currently using
- the EfficientNet-B0 which reaches roughly the same accuracy as resnet50 but is x4.9 smaller and requires x11 less flops
- the EfficientNet-B4 which is a bit smaller than the resnet50, requires roughly the same amount of flops than the resnet50, but reaches a much higher accuracy

![efficientnet](https://user-images.githubusercontent.com/527241/59408025-4b176e80-8db3-11e9-98ad-36c7860c9116.png)

![efficientnet2](https://user-images.githubusercontent.com/527241/59408027-4bb00500-8db3-11e9-8716-ca6c2f41764c.png)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the linked EfficientNet paper, especially Table 2, and inspect where the current ResNet50 backbone is configured. Define the EfficientNet-B0/B4 scope and how size, runtime, and prediction performance will be compared; the issue provides no file, test, or acceptance criterion, so completion needs those details established.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
computer-vision, machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.