I am happy to announce GraphNeuralNetworks.jl (GNN.jl in short), a graph neural network library written in Julia and based on the deep learning framework Flux.jl. I have been working on it for the past few months and put a lot of effort into trying to address some of the current limitations of GeometricFlux.jl. Now I feel it is stable and documented enough for prime time.
GNN.jl comes with a large set of features:
- Implements common graph convolutional layers.
- Supports computations on batched graphs.
- Easy to define custom layers.
- CUDA support.
- Integration with Graphs.jl.
- Support for node-, edge-, and graph-level machine learning tasks.
In the examples folder you will find some scripts solving paradigmatic tasks:
- Semi-supervised node classification: Given some feature vectors for each node in a graph and the labels of only a small subset of them, infer the labels of the remaining nodes.
- Link prediction: Predict the existence of unobserved edges in a graph exploiting the observed topology and node features.
- Graph classification: A classification task where inputs are graphs with associated node/edge features. Graphs have to be individually classified into different classes. Training is supervised, test is on graphs never seen during the training.