https://github.com/juliagraphs/graphneuralnetworks.jl
Graph Neural Networks in Julia
https://github.com/juliagraphs/graphneuralnetworks.jl
deep-learning graph-neural-networks graphs julia machine-learning
Last synced: 22 days ago
JSON representation
Graph Neural Networks in Julia
- Host: GitHub
- URL: https://github.com/juliagraphs/graphneuralnetworks.jl
- Owner: JuliaGraphs
- License: mit
- Created: 2021-08-30T05:35:59.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-11-03T12:19:33.000Z (6 months ago)
- Last Synced: 2024-11-03T12:27:43.841Z (6 months ago)
- Topics: deep-learning, graph-neural-networks, graphs, julia, machine-learning
- Language: Julia
- Homepage: https://carlolucibello.github.io/GraphNeuralNetworks.jl/dev/
- Size: 42.7 MB
- Stars: 226
- Watchers: 7
- Forks: 45
- Open Issues: 61
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GraphNeuralNetworks.jl
[](https://juliagraphs.org/GraphNeuralNetworks.jl/docs/GraphNeuralNetworks.jl/)
[](https://juliagraphs.org/GraphNeuralNetworks.jl/docs/GNNLux.jl/)

[](https://codecov.io/gh/JuliaGraphs/GraphNeuralNetworks.jl)**Libraries for deep learning on graphs in Julia**, using either [Flux.jl](https://fluxml.ai/) or [Lux.jl](https://lux.csail.mit.edu/stable/) as backend frameworks.
This repository contains the following packages:
- **GraphNeuralNetworks.jl**: Provides graph convolutional layers based on the deep learning framework [Flux.jl](https://fluxml.ai/). This is the frontend package for Flux users.
- **GNNLux.jl**: Offers graph convolutional layers based on the deep learning framework [Lux.jl](https://lux.csail.mit.edu/). 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](https://github.com/JuliaGraphs/Graphs.jl).
- [Examples](https://github.com/JuliaGraphs/GraphNeuralNetworks.jl/tree/master/GraphNeuralNetworks/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:
```julia
pkg> add GraphNeuralNetworks
```For **Lux** users, run:
```julia
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](https://github.com/JuliaGraphs/GraphNeuralNetworks.jl/tree/master/GraphNeuralNetworks/examples) and the [notebooks folder](https://github.com/JuliaGraphs/GraphNeuralNetworks.jl/tree/master/GraphNeuralNetworks/notebooks).
For a comprehensive introduction to the library, refer to the [Documentation](https://juliagraphs.org/GraphNeuralNetworks.jl/).
## Citing
If you use GraphNeuralNetworks.jl in a scientific publication, we would appreciate a reference
to [our paper](https://arxiv.org/abs/2412.06354):```
@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}
}
```## Acknowledgments
GraphNeuralNetworks.jl is largely inspired by [PyTorch Geometric](https://pytorch-geometric.readthedocs.io/en/latest/), [Deep Graph Library](https://docs.dgl.ai/),
and [GeometricFlux.jl](https://fluxml.ai/GeometricFlux.jl/stable/).