GraphGallery
A gallery of state-of-the-arts graph neural networks. Implemented with TensorFlow 2.x.
This repo aims to achieve 4 goals:
- Similar or higher performance
- Faster training and testing
- Simple and convenient to use, high scalability
- Easy to read source codes
Requirements
- python>=3.6
- tensorflow>=2.1 (2.1 is recommended)
- networkx==2.3
- scipy>=1.4.1
- scikit_learn>=0.22
- numpy>=1.17.4
- numba>=0.48
- gensim>=3.8.1
Other packages (not necessary):
- metis==0.2a4 (used for
ClusterGCN) - texttable
Install
pip install -U graphgallery
Implementation
General models
- GCN from Semi-Supervised Classification with Graph Convolutional Networks 🌐Paper
- GAT from Graph Attention Networks 🌐Paper
- SGC from Simplifying Graph Convolutional Networks 🌐Paper
- GraphSAGE from Inductive Representation Learning on Large Graphs 🌐Paper
- GWNN from Graph Wavelet Neural Network 🌐Paper
- GMNN from Graph Markov Neural Networks 🌐Paper
- ChebyNet from Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering 🌐Paper
- ClusterGCN from Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks 🌐Paper
- FastGCN from FastGCN: Fast Learning with Graph Convolutional Networks via Importance Sampling 🌐Paper
- LGCN from Large-Scale Learnable Graph Convolutional Networks 🌐Paper
Defense models
- RGCN from Robust Graph Convolutional Networks Against Adversarial Attacks 🌐Paper
- SBVAT/OBVAT from Batch Virtual Adversarial Training for Graph Convolutional Networks 🌐Paper
Other models
- GCN_MIX: Mixture of GCN and MLP
- GCNF: GCN + feature
- DenseGCN: Dense version of GCN
- EdgeGCN: GCN using message passing framework
- MedianSAGE: GraphSAGE using
Medianaggregation
Quick Start
Train a GCN model
from graphgallery.nn.models import GCN
# adj is scipy sparse matrix, x is numpy array matrix
model = GCN(adj, x, labels, device='GPU', seed=123)
# build your GCN model with custom hyper-parameters
model.build()
# train your model. here idx_train and idx_val are numpy arrays
his = model.train(idx_train, idx_val, verbose=1, epochs=100)
# test your model
loss, accuracy = model.test(idx_test)
print(f'Test loss {loss:.5}, Test accuracy {accuracy:.2%}')
On Cora dataset:
loss 1.02, acc 95.00%, val_loss 1.41, val_acc 77.40%: 100%|██████████| 100/100 [00:02<00:00, 37.07it/s]
Test loss 1.4123, Test accuracy 81.20%
Visualization
- Accuracy
import matplotlib.pyplot as plt
plt.plot(his.history['acc'])
plt.plot(his.history['val_acc'])
plt.legend(['Accuracy', 'Val Accuracy'])
plt.xlabel('Epochs')
- Loss
import matplotlib.pyplot as plt
plt.plot(his.history['loss'])
plt.plot(his.history['val_loss'])
plt.legend(['Loss', 'Val Loss'])
plt.xlabel('Epochs')
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
graphgallery-0.1.5.tar.gz
(50.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
graphgallery-0.1.5-py3-none-any.whl
(121.7 kB
view details)
File details
Details for the file graphgallery-0.1.5.tar.gz.
File metadata
- Download URL: graphgallery-0.1.5.tar.gz
- Upload date:
- Size: 50.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2aa2efbc9b24f41a2d095e3590242c3ab2b607cfbf00bee8f848a4db54e8167
|
|
| MD5 |
3f9faebc7683cc09c89065fc68a48274
|
|
| BLAKE2b-256 |
efd0b7011462725de56dad7f0095a7665efbdae00be7905a72a2913e8b517e56
|
File details
Details for the file graphgallery-0.1.5-py3-none-any.whl.
File metadata
- Download URL: graphgallery-0.1.5-py3-none-any.whl
- Upload date:
- Size: 121.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d8a5a9dcf4bc33434f051374be17838ea06feeaa3e0c69f96979ab5805820bd
|
|
| MD5 |
45054b8bd7c65cf1dbcef46ea6f7de9a
|
|
| BLAKE2b-256 |
e1e9651f9516a9e82407233889170b78ba20560fd69927464204ebe5d8b6ed85
|