This repo contains a Tensorflow implementation of the Graph Neural Network model.
- Website (including documentation): https://mtiezzi.github.io/gnn_site/
- Authors: Matteo Tiezzi, Alberto Rossi
The GNN framework requires the packages tensorflow, numpy, scipy.
To install the requirements you can use the following command
pip install -U -r requirements.txt
Install the latest version of GNN:
pip install gnn
For additional details, please see Install.
import gnn.GNN as GNN import gnn.gnn_utils import Net as n # Provide your own functions to generate input data inp, arcnode, nodegraph, labels = set_load() # Create the state transition function, output function, loss function and metrics net = n.Net(input_dim, state_dim, output_dim) # Create the graph neural network model g = GNN.GNN(net, input_dim, output_dim, state_dim) #Training for j in range(0, num_epoch): g.Train(inp, arcnode, labels, count, nodegraph) # Validate print(g.Validate(inp_val, arcnode_val, labels_val, count, nodegraph_val))
To cite the GNN implementation please use the following publication:
Rossi, A., Tiezzi, M., Dimitri, G.M., Bianchini, M., Maggini, M., & Scarselli, F. (2018). "Inductive–Transductive Learning with Graph Neural Networks", In Artificial Neural Networks in Pattern Recognition (pp.201-212). Berlin : Springer-Verlag.
Bibtex:
@inproceedings{rossi2018inductive, title={Inductive--Transductive Learning with Graph Neural Networks}, author={Rossi, Alberto and Tiezzi, Matteo and Dimitri, Giovanna Maria and Bianchini, Monica and Maggini, Marco and Scarselli, Franco}, booktitle={IAPR Workshop on Artificial Neural Networks in Pattern Recognition}, pages={201--212}, year={2018}, organization={Springer} }
To cite GNN please use the following publication:
F. Scarselli, M. Gori, A. C. Tsoi, M. Hagenbuchner, G. Monfardini, "The Graph Neural Network Model", IEEE Transactions on Neural Networks, vol. 20(1); p. 61-80, 2009.
Bibtex:
@article{Scarselli2009TheGN, title={The Graph Neural Network Model}, author={Franco Scarselli and Marco Gori and Ah Chung Tsoi and Markus Hagenbuchner and Gabriele Monfardini}, journal={IEEE Transactions on Neural Networks}, year={2009}, volume={20}, pages={61-80} }
In the example folder, file GNN_SimpleNet_TF2.py you can find a tentative all-in-one implementation in Tensorflow 2, a contribution by Rohan Kotwani . We thank him and all the interested users!
You can find a TF 2.x implementation by N.Pancino and P.Bongini (PhD Students @ SAILab) at this repo repo
Released under the 3-Clause BSD license (see LICENSE.txt):
Copyright (C) 2004-2019 Matteo Tiezzi Matteo Tiezzi <[email protected]> Alberto Rossi <[email protected]>