Lightning-Universe / lightning-bolts

Toolbox of models, callbacks, and datasets for AI/ML researchers.
https://lightning-bolts.readthedocs.io
Apache License 2.0
1.69k stars 323 forks source link

Implementation of Efficient-Net and Efficient-Det in Pytorch Lightning #1

Open bilel-bj opened 4 years ago

bilel-bj commented 4 years ago

🚀 Feature

Implementation of Efficient-Net and Efficient-Det in Pytorch Lightning

Motivation

These two algorithms are the state of the art in Image classification and Object detection. Providing an implementation in Pytorch LIghtning will attract many data scientist to adopt this promising framework

Alternatives

https://paperswithcode.com/paper/efficientdet-scalable-and-efficient-object

edgarriba commented 4 years ago

when you say implementation means everything including the network from scratch, or just mixing lightning with e.g torchvision SOTA models ?

bilel-bj commented 4 years ago

It is not actually provided in TorchVision. We can only find 8it in Torch Hub. It will be attractive that we find some easy way to use these algorithms in Lightning. Thanks for your support.

danielkurniadi commented 4 years ago

Hi guys, is this still on? I can give a helping hand in starting the 6th of May and work for 2-4 weeks for this one.

justusschock commented 4 years ago

I think so far, there is no-one working on this, so if you want to, we'd appreciate that :)

danielkurniadi commented 4 years ago

Will do that, but gimme some time. I'm on another finishing project. I'll let get back here asap I promise.

justusschock commented 4 years ago

@iqDF Sorry for the late reply. Of course you can ping me whenever you need :) I recently get spammed with github notifications, so I mussed have missed this one :) As for documentation: Yes, a few doctest examples would be nice.

And for the hparams, just include a default that matches the hparams you used to achieve the reported results :)

Borda commented 4 years ago

@iqDF how is it going here?

danielkurniadi commented 4 years ago

@Borda Hi I almost thought this was abandoned due to delay inactivity in the forum. Anyway here is the progress:

  1. Currently I have used several detection models (efficient det included) in pytorch + lightning for my kaggle project.
  2. The implementation needs to be tidy up. I use it for competition currently but tidying up should be quick, but I'll take my time for one week.
  3. Performance wise, I'll just use pretrained one from https://github.com/google/automl
Borda commented 4 years ago

everyone is busy, but seeing this landed would be great, I personally would love to try it... if you start a draft PR we can help you with some work... :]

bguan commented 4 years ago

Any updates on this? Hoping to try this out.

Borda commented 4 years ago

Maybe @teddykoker would be interested in finishing this one.... 🐰

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

JVGD commented 3 years ago

Hi people. What's the state of the EfficientDet implementation? I took a look at this WIP branch but it only seems to have the BiFPN module implemented. As you know EfficientDet is EfficientNet + BiFPN... If we can implement this it would attract lots of users since EfficientDets are still SOTA in object detection while being very lightweight to fit into edge devices.

akihironitta commented 3 years ago

@oke-aditya I'm sure your PRs like #475 are waiting for our reviews for so long, but let me mention you here since you might be interested in this one.

oke-aditya commented 3 years ago

😅 No worries @akihironitta reviewing takes time.

I think efficient net will be added to torchvision soon. Have a look here.

Once efficient net is supported by torchvision adding efficient det will be easier.

31 BiFPN block can then be added to create efficient det. We should rather avoid timm dependency for efficient net and use from torchvision when it supports.

Since efficient net, ResNet, ResNext, mobilenet all are classification models directly from torchvision, it might make sense to add classification trainer ?

There are other recent classification approaches such as DeiT (FB research) Lambda Networks etc So maybe a Classification API is worth adding for bolts ?