Graph Neural Networks with Keras and Tensorflow 2.
Project description
Welcome to Spektral
Spektral is a Python library for graph deep learning, based on the Keras API and TensorFlow 2. The main goal of this project is to provide a simple but flexible framework for creating graph neural networks (GNNs).
You can use Spektral for classifying the nodes of a network, predicting molecular properties, generating new graphs with GANs, clustering nodes, predicting links, and any other task where data is described by graphs.
Spektral implements some of the most popular layers for graph deep learning, including:
- Graph Convolutional Networks (GCN)
- Chebyshev networks (ChebNets)
- GraphSAGE
- ARMA convolutions
- Edge-Conditioned Convolutions (ECC)
- Graph attention networks (GAT)
- Approximated Personalized Propagation of Neural Predictions (APPNP)
- Graph Isomorphism Networks (GIN)
- Diffusional Convolutions
and many others (see convolutional layers).
You can also find pooling layers, including:
- DiffPool
- MinCUT pooling
- Top-K pooling
- Self-Attention Graph (SAG) pooling
- Global sum, average, and max pooling
- Global gated attention pooling
- SortPool
Spektral also includes lots of utilities for your graph deep learning projects.
See how to get started with Spektral and have a look at the examples for some templates.
The source code of the project is available on Github.
Read the documentation here.
You can also cite the paper introducing Spektral: Graph Neural Networks in TensorFlow and Keras with Spektral (ICML 2020 - GRL+ Workshop).
Installation
Spektral is compatible with Python 3.5+, and is tested on Ubuntu 16.04+ and MacOS. Other Linux distros should work as well, but Windows is not supported for now.
Some optional features of Spektral depend on RDKit, a library for cheminformatics and molecule manipulation (available through Anaconda).
The simplest way to install Spektral is from PyPi:
pip install spektral
To install Spektral from source, run this in a terminal:
git clone https://github.com/danielegrattarola/spektral.git
cd spektral
python setup.py install # Or 'pip install .'
To install Spektral on Google Colab:
! pip install spektral
TensorFlow 1 and Keras
Starting from version 0.3, Spektral only supports TensorFlow 2 and tf.keras
.
The old version of Spektral, which is based on TensorFlow 1 and the stand-alone Keras library, is still available on the tf1
branch on GitHub and can be installed from source:
git clone https://github.com/danielegrattarola/spektral.git
cd spektral
git checkout tf1
python setup.py install # Or 'pip install .'
In the future, the TF1-compatible version of Spektral (<0.2) will receive bug fixes, but all new features will only support TensorFlow 2.
Contributing
Spektral is an open source project available on Github, and contributions of all types are welcome. Feel free to open a pull request if you have something interesting that you want to add to the framework.
The contribution guidelines are available here and a list of feature requests is available here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file spektral-0.6.2.tar.gz
.
File metadata
- Download URL: spektral-0.6.2.tar.gz
- Upload date:
- Size: 61.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/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b08284d5227f62f327579cef526971aec7fcd4cb0c153bc031694bc4376f3a0a |
|
MD5 | 95d1c2e78432980bccd8c40c1b8438f8 |
|
BLAKE2b-256 | 1fb9988a26545961046333255fe67b556d32bbc6e43fa4c632dd07ac4458be70 |
Provenance
File details
Details for the file spektral-0.6.2-py3-none-any.whl
.
File metadata
- Download URL: spektral-0.6.2-py3-none-any.whl
- Upload date:
- Size: 95.4 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/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 318ad66862334150319fa990b46ef97642afd33060f918756f3703c44c3a227e |
|
MD5 | 7d5c541cbaa957df41403823a4b11c24 |
|
BLAKE2b-256 | 3855de193ea0b63b2bacb4e60298856e45cff6dd3e63aa49e8b3069d7a44b840 |