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.
- Support for heterogeneous and temporal graphs.
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 the following reference:
@misc{Lucibello2021GNN,
author = {Carlo Lucibello and other contributors},
title = {GraphNeuralNetworks.jl: a geometric deep learning library for the Julia programming language},
year = 2021,
url = {https://github.com/JuliaGraphs/GraphNeuralNetworks.jl}
}
GraphNeuralNetworks.jl is largely inspired by PyTorch Geometric, Deep Graph Library, and GeometricFlux.jl.