All Projects → FluxML → GeometricFlux.jl

FluxML / GeometricFlux.jl

Licence: MIT license
Geometric Deep Learning for Flux

Programming Languages

julia
2034 projects
TeX
3793 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to GeometricFlux.jl

overlapping-community-detection
Implementation of "Overlapping Community Detection with Graph Neural Networks"
Stars: ✭ 79 (-72.57%)
Mutual labels:  geometric-deep-learning, graph-neural-networks
gnn-lspe
Source code for GNN-LSPE (Graph Neural Networks with Learnable Structural and Positional Representations), ICLR 2022
Stars: ✭ 165 (-42.71%)
Mutual labels:  geometric-deep-learning, graph-neural-networks
Pytorch geometric
Graph Neural Network Library for PyTorch
Stars: ✭ 13,359 (+4538.54%)
Mutual labels:  geometric-deep-learning, graph-neural-networks
graph-convnet-tsp
Code for the paper 'An Efficient Graph Convolutional Network Technique for the Travelling Salesman Problem' (INFORMS Annual Meeting Session 2019)
Stars: ✭ 196 (-31.94%)
Mutual labels:  geometric-deep-learning, graph-neural-networks
Stellargraph
StellarGraph - Machine Learning on Graphs
Stars: ✭ 2,235 (+676.04%)
Mutual labels:  geometric-deep-learning, graph-neural-networks
DiGCL
The PyTorch implementation of Directed Graph Contrastive Learning (DiGCL), NeurIPS-2021
Stars: ✭ 27 (-90.62%)
Mutual labels:  graph-neural-networks
kglib
TypeDB-ML is the Machine Learning integrations library for TypeDB
Stars: ✭ 523 (+81.6%)
Mutual labels:  geometric-deep-learning
ReduxSharp
Unidirectional Data Flow in C# - Inspired by Redux
Stars: ✭ 18 (-93.75%)
Mutual labels:  flux
awesome-graph-self-supervised-learning-based-recommendation
A curated list of awesome graph & self-supervised-learning-based recommendation.
Stars: ✭ 37 (-87.15%)
Mutual labels:  graph-neural-networks
react-evoke
Straightforward action-driven state management for straightforward apps built with Suspense
Stars: ✭ 15 (-94.79%)
Mutual labels:  flux
assembler
Functional, type-safe, stateless reactive Java API for efficient implementation of the API Composition Pattern for querying/merging data from multiple datasources/services, with a specific focus on solving the N + 1 query problem
Stars: ✭ 102 (-64.58%)
Mutual labels:  flux
LambdaNet
Probabilistic Type Inference using Graph Neural Networks
Stars: ✭ 39 (-86.46%)
Mutual labels:  graph-neural-networks
QGNN
Quaternion Graph Neural Networks (ACML 2021) (Pytorch and Tensorflow)
Stars: ✭ 31 (-89.24%)
Mutual labels:  graph-neural-networks
NaiveNASflux.jl
Your local Flux surgeon
Stars: ✭ 20 (-93.06%)
Mutual labels:  flux
eeg-gcnn
Resources for the paper titled "EEG-GCNN: Augmenting Electroencephalogram-based Neurological Disease Diagnosis using a Domain-guided Graph Convolutional Neural Network". Accepted for publication (with an oral spotlight!) at ML4H Workshop, NeurIPS 2020.
Stars: ✭ 50 (-82.64%)
Mutual labels:  graph-neural-networks
cwn
Message Passing Neural Networks for Simplicial and Cell Complexes
Stars: ✭ 97 (-66.32%)
Mutual labels:  graph-neural-networks
k8s-gitops
Homelab GitOps repository. Cluster definition state via code.
Stars: ✭ 47 (-83.68%)
Mutual labels:  flux
variant
Variant types in TypeScript
Stars: ✭ 147 (-48.96%)
Mutual labels:  flux
mutable
State containers with dirty checking and more
Stars: ✭ 32 (-88.89%)
Mutual labels:  flux
graphchem
Graph-based machine learning for chemical property prediction
Stars: ✭ 21 (-92.71%)
Mutual labels:  graph-neural-networks

GeometricFlux.jl

codecov

GeometricFlux is a geometric deep learning library for Flux. This library aims to be compatible with packages from JuliaGraphs ecosystem and have support of CUDA GPU acceleration with CUDA. Message passing scheme is implemented as a flexbile framework and fused with Graph Network block scheme. GeometricFlux is compatible with other packages that are composable with Flux.

Suggestions, issues and pull requsts are welcome.

Installation

]add GeometricFlux

Features

  • Extending Flux deep learning framework in Julia and seamlessly integration with regular Flux layers.
  • Support of CUDA GPU with CUDA.jl and mini-batched training leveraging advantages of GPU
  • Integration with existing JuliaGraphs ecosystem
  • Support Message-passing and graph network architectures
  • Support of static graph and variable graph strategy. Variable graph strategy is useful when training the model over diverse graph structures.
  • Integration of GNN benchmark datasets
  • Support dynamic graph update towards manifold learning 2.0

Featured Graphs

GeometricFlux handles graph data (the topology plus node/vertex/graph features) thanks to FeaturedGraph type.

A FeaturedGraph can be constructed from various graph structures, including adjacency matrices, adjacency lists, Graphs' types...

fg = FeaturedGraph(adj_list)   

Graph convolutional layers

Construct a GCN layer:

GCNConv(input_dim => output_dim, relu)

Use it as you use Flux

model = Chain(
    WithGraph(fg, GCNConv(fg, 1024 => 512, relu)),
    Dropout(0.5),
    WithGraph(fg, GCNConv(fg, 512 => 128)),
    Dense(128, 10)
)
## Loss
loss(x, y) = logitcrossentropy(model(x), y)
accuracy(x, y) = mean(onecold(model(x)) .== onecold(y))

## Training
ps = Flux.params(model)
train_data = [(train_X, train_y)]
opt = ADAM(0.01)
evalcb() = @show(accuracy(train_X, train_y))

Flux.train!(loss, ps, train_data, opt, cb=throttle(evalcb, 10))

Roadmap

To achieve geometric deep learning raised by Bronstein et al, 5G fields of deep learning models will be supported in GeometricFlux.jl. For details, you could check the geometric deep learning official website.

5G including the following fields:

  • Graphs and Sets
    • including classical GNN models and networks over sets.
    • Transformer models are regard as a kind of GNN with complete graph, and you can check chengchingwen/Transformers.jl for more details.
  • Grids and Euclidean spaces
    • including classical convolutional neural networks, multi-layer perceptrons etc.
    • for operators over functional spaces of regular grid, you can check SciML/NeuralOperators.jl for more details.
  • Groups and Homogeneous spaces
    • including a series of equivariant/invariant models.
  • Geodesics and Manifolds
  • Gauges and Bundles
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].