Skip to content

dferre97/GraphNeuralNetworks.jl

 
 

Repository files navigation

GraphNeuralNetworks.jl

codecov

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.

Features

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.

Installation

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

Usage examples can be found in the examples folder and the notebooks folder.

For a comprehensive introduction to the library, refer to the Documentation.

Citing

If you use GraphNeuralNetworks.jl in a scientific publication, we would appreciate a reference to our paper:

@article{lucibello2025graphneuralnetworks,
  author  = {Carlo Lucibello and Aurora Rossi},
  title   = {GraphNeuralNetworks.jl: Deep Learning on Graphs with Julia},
  journal = {Journal of Machine Learning Research},
  year    = {2025},
  volume  = {26},
  number  = {80},
  pages   = {1--6},
  url     = {http://jmlr.org/papers/v26/24-2130.html}
}

Acknowledgments

GraphNeuralNetworks.jl is largely inspired by PyTorch Geometric, Deep Graph Library, and GeometricFlux.jl.

About

Enhance CUDA sparse support

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Julia 73.1%
  • Jupyter Notebook 26.8%
  • CSS 0.1%