# \[ANN\] GraphNeuralNetworks.jl

**URL:** https://discourse.julialang.org/t/ann-graphneuralnetworks-jl/71129
**Category:** Package Announcements
**Tags:** flux, machine-learning, graphs
**Created:** [November 8, 2021, 8:12am UTC](https://discourse.julialang.org/t/ann-graphneuralnetworks-jl/71129 "2021-11-08T08:12:32Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![CarloLucibello](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carlolucibello/32/3278_2.png) [@CarloLucibello](https://discourse.julialang.org/u/CarloLucibello)
#### Post date: [November 8, 2021, 8:12am UTC](https://discourse.julialang.org/t/ann-graphneuralnetworks-jl/71129/1 "2021-11-08T08:12:33Z")

</div>

I am happy to announce [GraphNeuralNetworks.jl](https://github.com/CarloLucibello/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](https://carlolucibello.github.io/GraphNeuralNetworks.jl/dev/) 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](https://github.com/JuliaGraphs/Graphs.jl).
- Support for node-, edge-, and graph-level machine learning tasks.

In the [examples](https://github.com/CarloLucibello/GraphNeuralNetworks.jl/tree/master/examples) folder you will find some scripts solving paradigmatic tasks:

- [Semi-supervised node classification](https://github.com/CarloLucibello/GraphNeuralNetworks.jl/blob/master/examples/node_classification_cora.jl): 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](https://github.com/CarloLucibello/GraphNeuralNetworks.jl/blob/master/examples/link_prediction_pubmed.jl): Predict the existence of unobserved edges in a graph exploiting the observed topology and node features.
- [Graph classification](https://github.com/CarloLucibello/GraphNeuralNetworks.jl/blob/master/examples/graph_classification_tudataset.jl): 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.

GNN.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/).
