FluxML / Flux.jl

Relax! Flux is the ML library that doesn't make you tensor
https://fluxml.ai/
Other
4.55k stars 609 forks source link

Group equivariant CNN (G-CNN) #2246

Open b-fg opened 1 year ago

b-fg commented 1 year ago

Motivation and description

Group equivariant CNN (G-CNN) embed rotation invariance or (and) scale invariance on top of translation invariance in CNNs. Some references:

Is there support for these type of architectures in Flux? In PyTorch, an implementation on top of the main library is exemplified here, even though I am not sure if this is directly implemented nowadays.

Thanks!

Possible Implementation

No response

jerabaul29 commented 1 year ago

That would be super helpful for all people working with physical systems :) .

A small note:

ToucheSir commented 1 year ago

All this seems like a great feature set to prototype in a dedicated library! The general criteria we have for inclusion in core Flux is maturity (of both methods and code), ubiquity and cross-domain applicability. Flux also needs to be very careful about factors such as backwards compatibility and architectural fit, so a separate package should offer both more agility and room to experiment with design.

yuehhua commented 1 year ago

Group convolution is one of the member of geometric deep learning. Should be considered supported by geometric deep learning library based on Flux.jl. GeometricFlux.jl is a good place to support group convolutions and this model is listed at FluxML/GeometricFlux.jl#225. PRs are welcome.

b-fg commented 1 year ago

Thanks for pointing it out @yuehhua, that's indeed what we are after.