paganpasta / eqxvision

A Python package of computer vision models for the Equinox ecosystem.
https://eqxvision.readthedocs.io
MIT License
100 stars 12 forks source link

Adding training jupyter notebooks #6

Open paganpasta opened 2 years ago

paganpasta commented 2 years ago

Adding a sample training notebook (preferably on each network) on Imagenette demonstrating some different techniques. For example, different optimizers, transfer learning, distillation etc. Open to discussions!

oarriaga commented 2 years ago

@paganpasta I think this is a good idea. However, what would you think about hosting the notebooks somewhere else. Or maybe as a documentation page (a better version of something like this https://oarriaga.github.io/paz/getting-started/object_detection_pipeline/). My general impression is that hosting jupyter-notebooks in the same source code repo can can quickly pollute git history, forever increasing the size of the repo.

paganpasta commented 2 years ago

Hey @oarriaga,

For notebooks I was planning to integrate them into documentation as you did and having a link to colab for the user to execute the same.

oarriaga commented 2 years ago

Yeah that would be great! I like the idea of the colab too :)

riven314 commented 2 years ago

Hi @paganpasta I would like to contribute to adding "Training a GAN" notebook do you have any reference code (e.g. training GAN in JAX) that I can take a look before I get started? I found this example, not sure if it's a good idea to port this into eqxvision

paganpasta commented 2 years ago

Hey @riven314 thanks for the interest!

I don't have readily available resources for training a GAN in JAX. However, you can also take a look at existing PyTorch resources on this topic as well. The only thing I'd look for in the implementation is to gain more than a simple understanding of GAN. What I mean is that, already a lot of resources and tutorials demonstrate training of a simple GAN on simple datasets. There is hardly anything new to be added. Alternatively, you can choose to demonstrate a tricky workaround which the user might not be aware of in eqxvision and/or equinox. Just as an example, optax.multi_transform for combining different optimisers.

riven314 commented 2 years ago

Hi @paganpasta thanks for your reply Do you think this PyTorch DCGAN example good enough to be ported here? Its dataset, model architecture, and training loop seems straight forward so I think it's appropriate to be adopted as an example.

paganpasta commented 2 years ago

Yes, please go ahead!