Libraries for deep learning on graphs in Julia, using either Flux.jl or Lux.jl as backend frameworks.
This repository contains the following packages:
-
GraphNeuralNetworks.jl: Provides graph convolutional layers based on the deep learning framework Flux.jl. This is the frontend package for Flux users.
-
GNNLux.jl: Offers graph convolutional layers based on the deep learning framework Lux.jl. This is the frontend package for Lux users.
-
GNNGraphs.jl: Provides graph data structures and helper functions for working with graph data. This package is re-exported by the frontend packages.
-
GNNlib.jl: Implements the message-passing framework based on the gather/scatter mechanism or sparse matrix multiplication. It also includes shared implementations for the layers used by the two frontend packages. This package is not intended for direct use by end-users but is re-exported by the frontend packages.
Both GraphNeuralNetworks.jl and GNNLux.jl support the following features:
- Implementation of common graph convolutional layers.
- Computation on batched graphs.
- Custom layer definitions.
- Support for CUDA and AMDGPU.
- Integration with Graphs.jl.
- Examples of node, edge, and graph-level machine learning tasks.
- Heterogeneous and dynamical graphs and convolutions.
All packages are registered in the General registry, making them easy to install via the Julia package manager.
For Flux users, run:
pkg> add GraphNeuralNetworks
For Lux users, run:
pkg> add GNNLux
There is no need to install GNNGraphs or GNNlib directly, as their functionality is re-exported by the frontend packages.
Usage examples can be found in the examples folder and the notebooks folder.
For a comprehensive introduction to the library, refer to the Documentation.
If you use GraphNeuralNetworks.jl in a scientific publication, we would appreciate a reference to our paper:
@article{lucibello2024graphneuralnetworks,
title={GraphNeuralNetworks.jl: Deep Learning on Graphs with Julia},
author={Lucibello, Carlo and Rossi, Aurora},
journal={arXiv preprint arXiv:2412.06354},
url={https://arxiv.org/abs/2412.06354},
year={2024}
}
GraphNeuralNetworks.jl is largely inspired by PyTorch Geometric, Deep Graph Library, and GeometricFlux.jl.