Geometric DL library for Julia

package
#1

I’m currently implementing geometric deep learning library. In particular, I’m extending Flux.jl to graphs and manifolds (taking advantage of the excellent LightGraphs.jl library). It’s working name is FluxGeometric.jl.

I’m inspired by DGL, pytorch_geometric, and graph_nets libraries for Python. The plan is to eventually incorporate all of Spatial, Spectral, Spectrum-free, Charting-based and possibly other methods.

I’m curious if there is already such library for Julia (I looked around and was not able to find anything)?

I also welcome any thoughts, suggestions, and advice on this (including cool naming suggestions). :slightly_smiling_face:

11 Likes

#2

I’ve been working with pytorch_geometric, which has been a pleasure, and the main primitives that makes it fast are the scatter functions on GPU defined here along with the coalesce and sparse multiply functions defined here. I imagine having similarly performant implementations of those primitives in julia would go a long way. These primitives would probably be best defined in an existing or new GPU-centered repo, since they are not specific to Graph DL.

I would offer to help if I had time…

2 Likes

#3

Hi Azamat,

See this issue in flux: https://github.com/FluxML/Flux.jl/issues/625

There has been some interest expressed in working on such a library.

In particular, https://github.com/pevnak/Mill.jl was mentioned as being useful " [implements] all the layers you need for gnn. I have implemented GNN with Mill.jl and LightGraphs.jl in 4 hours when I had a flu."

There are plans to use it for a GNN library, perhaps it would be good to touch base with the contributors to that package.

1 Like

#4

i recommend you also take a look at my package Grassmann.jl which provides a very efficient implementation of geometric algebra

2 Likes