spektral


Namespektral JSON
Version 1.3.1 PyPI version JSON
download
home_page
SummaryGraph Neural Networks with Keras and TensorFlow.
upload_time2024-01-21 16:17:38
maintainer
docs_urlNone
author
requires_python>=3.7
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            <img src="https://danielegrattarola.github.io/spektral/img/logo_dark.svg" style="max-width: 400px; width: 100%;"/>

# 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 users of a social 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)](https://arxiv.org/abs/1609.02907)
- [Chebyshev convolutions](https://arxiv.org/abs/1606.09375)
- [GraphSAGE](https://arxiv.org/abs/1706.02216)
- [ARMA convolutions](https://arxiv.org/abs/1901.01343)
- [Edge-Conditioned Convolutions (ECC)](https://arxiv.org/abs/1704.02901)
- [Graph attention networks (GAT)](https://arxiv.org/abs/1710.10903)
- [Approximated Personalized Propagation of Neural Predictions (APPNP)](https://arxiv.org/abs/1810.05997)
- [Graph Isomorphism Networks (GIN)](https://arxiv.org/abs/1810.00826)
- [Diffusional Convolutions](https://arxiv.org/abs/1707.01926)

and many others (see [convolutional layers](https://graphneural.network/layers/convolution/)).

You can also find [pooling layers](https://graphneural.network/layers/pooling/), including:

- [MinCut pooling](https://arxiv.org/abs/1907.00481)
- [DiffPool](https://arxiv.org/abs/1806.08804)
- [Top-K pooling](http://proceedings.mlr.press/v97/gao19a/gao19a.pdf)
- [Self-Attention Graph (SAG) pooling](https://arxiv.org/abs/1904.08082)
- Global pooling
- [Global gated attention pooling](https://arxiv.org/abs/1511.05493)
- [SortPool](https://www.cse.wustl.edu/~muhan/papers/AAAI_2018_DGCNN.pdf)

Spektral also includes lots of utilities for representing, manipulating, and transforming graphs in your graph deep learning projects.

See how to [get started with Spektral](https://graphneural.network/getting-started/) and have a look at the [examples](https://danielegrattarola.github.io/spektral/examples/) for some templates.

The source code of the project is available on [Github](https://github.com/danielegrattarola/spektral).  
Read the documentation [here](https://graphneural.network).  

If you want to cite Spektral in your work, refer to our paper: 

> [Graph Neural Networks in TensorFlow and Keras with Spektral](https://arxiv.org/abs/2006.12138)<br>
> Daniele Grattarola and Cesare Alippi

## Installation
Spektral is compatible with Python 3.6 and above, and is tested on the latest versions of Ubuntu, MacOS, and Windows. 
Other Linux distros should work as well. 

The simplest way to install Spektral is from PyPi: 

```bash
pip install spektral
```

To install Spektral from source, run this in a terminal:

```bash
git clone https://github.com/danielegrattarola/spektral.git
cd spektral
python setup.py install  # Or 'pip install .'
```

To install Spektral on [Google Colab](https://colab.research.google.com/):

```
! pip install spektral
```

## New in Spektral 1.0

The 1.0 release of Spektral is an important milestone for the library and brings many new features and improvements. 

If you have already used Spektral in your projects, the only major change that you need to be aware of is the new `datasets` API.

This is a summary of the new features and changes: 

- The new `Graph` and `Dataset` containers standardize how Spektral handles data. 
**This does not impact your models**, but makes it easier to use your data in Spektral.
- The new `Loader` class hides away all the complexity of creating graph batches. 
Whether you want to write a custom training loop or use Keras' famous model-dot-fit approach, you only need to worry about the training logic and not the data. 
- The new `transforms` module implements a wide variety of common operations on graphs, that you can now `apply()` to your datasets. 
- The new `GeneralConv` and `GeneralGNN` classes let you build models that are, well... general. Using state-of-the-art results from recent literature means that you don't need to worry about which layers or architecture to choose. The defaults will work well everywhere. 
- New datasets: QM7 and ModelNet10/40, and a new wrapper for OGB datasets. 
- Major clean-up of the library's structure and dependencies.
- New examples and tutorials.



## Contributing
Spektral is an open-source project available [on Github](https://github.com/danielegrattarola/spektral), 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](https://github.com/danielegrattarola/spektral/blob/master/CONTRIBUTING.md) and a list of feature requests is available [here](https://github.com/danielegrattarola/spektral/projects/1).

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "spektral",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "",
    "author": "",
    "author_email": "Daniele Grattarola <daniele.grattarola@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/a3/a1/b1215ed6dd078649170e3e995b4cbd052920e60bbc7a8082a1f3c03c4299/spektral-1.3.1.tar.gz",
    "platform": null,
    "description": "<img src=\"https://danielegrattarola.github.io/spektral/img/logo_dark.svg\" style=\"max-width: 400px; width: 100%;\"/>\n\n# Welcome to Spektral\nSpektral is a Python library for graph deep learning, based on the Keras API and TensorFlow 2.\nThe main goal of this project is to provide a simple but flexible framework for creating graph neural networks (GNNs).\n\nYou can use Spektral for classifying the users of a social network, predicting molecular properties, generating new graphs with GANs, clustering nodes, predicting links, and any other task where data is described by graphs. \n\nSpektral implements some of the most popular layers for graph deep learning, including: \n\n- [Graph Convolutional Networks (GCN)](https://arxiv.org/abs/1609.02907)\n- [Chebyshev convolutions](https://arxiv.org/abs/1606.09375)\n- [GraphSAGE](https://arxiv.org/abs/1706.02216)\n- [ARMA convolutions](https://arxiv.org/abs/1901.01343)\n- [Edge-Conditioned Convolutions (ECC)](https://arxiv.org/abs/1704.02901)\n- [Graph attention networks (GAT)](https://arxiv.org/abs/1710.10903)\n- [Approximated Personalized Propagation of Neural Predictions (APPNP)](https://arxiv.org/abs/1810.05997)\n- [Graph Isomorphism Networks (GIN)](https://arxiv.org/abs/1810.00826)\n- [Diffusional Convolutions](https://arxiv.org/abs/1707.01926)\n\nand many others (see [convolutional layers](https://graphneural.network/layers/convolution/)).\n\nYou can also find [pooling layers](https://graphneural.network/layers/pooling/), including:\n\n- [MinCut pooling](https://arxiv.org/abs/1907.00481)\n- [DiffPool](https://arxiv.org/abs/1806.08804)\n- [Top-K pooling](http://proceedings.mlr.press/v97/gao19a/gao19a.pdf)\n- [Self-Attention Graph (SAG) pooling](https://arxiv.org/abs/1904.08082)\n- Global pooling\n- [Global gated attention pooling](https://arxiv.org/abs/1511.05493)\n- [SortPool](https://www.cse.wustl.edu/~muhan/papers/AAAI_2018_DGCNN.pdf)\n\nSpektral also includes lots of utilities for representing, manipulating, and transforming graphs in your graph deep learning projects.\n\nSee how to [get started with Spektral](https://graphneural.network/getting-started/) and have a look at the [examples](https://danielegrattarola.github.io/spektral/examples/) for some templates.\n\nThe source code of the project is available on [Github](https://github.com/danielegrattarola/spektral).  \nRead the documentation [here](https://graphneural.network).  \n\nIf you want to cite Spektral in your work, refer to our paper: \n\n> [Graph Neural Networks in TensorFlow and Keras with Spektral](https://arxiv.org/abs/2006.12138)<br>\n> Daniele Grattarola and Cesare Alippi\n\n## Installation\nSpektral is compatible with Python 3.6 and above, and is tested on the latest versions of Ubuntu, MacOS, and Windows. \nOther Linux distros should work as well. \n\nThe simplest way to install Spektral is from PyPi: \n\n```bash\npip install spektral\n```\n\nTo install Spektral from source, run this in a terminal:\n\n```bash\ngit clone https://github.com/danielegrattarola/spektral.git\ncd spektral\npython setup.py install  # Or 'pip install .'\n```\n\nTo install Spektral on [Google Colab](https://colab.research.google.com/):\n\n```\n! pip install spektral\n```\n\n## New in Spektral 1.0\n\nThe 1.0 release of Spektral is an important milestone for the library and brings many new features and improvements. \n\nIf you have already used Spektral in your projects, the only major change that you need to be aware of is the new `datasets` API.\n\nThis is a summary of the new features and changes: \n\n- The new `Graph` and `Dataset` containers standardize how Spektral handles data. \n**This does not impact your models**, but makes it easier to use your data in Spektral.\n- The new `Loader` class hides away all the complexity of creating graph batches. \nWhether you want to write a custom training loop or use Keras' famous model-dot-fit approach, you only need to worry about the training logic and not the data. \n- The new `transforms` module implements a wide variety of common operations on graphs, that you can now `apply()` to your datasets. \n- The new `GeneralConv` and `GeneralGNN` classes let you build models that are, well... general. Using state-of-the-art results from recent literature means that you don't need to worry about which layers or architecture to choose. The defaults will work well everywhere. \n- New datasets: QM7 and ModelNet10/40, and a new wrapper for OGB datasets. \n- Major clean-up of the library's structure and dependencies.\n- New examples and tutorials.\n\n\n\n## Contributing\nSpektral is an open-source project available [on Github](https://github.com/danielegrattarola/spektral), and contributions of all types are welcome. \nFeel free to open a pull request if you have something interesting that you want to add to the framework.\n\nThe contribution guidelines are available [here](https://github.com/danielegrattarola/spektral/blob/master/CONTRIBUTING.md) and a list of feature requests is available [here](https://github.com/danielegrattarola/spektral/projects/1).\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Graph Neural Networks with Keras and TensorFlow.",
    "version": "1.3.1",
    "project_urls": {
        "documentation": "https://graphneural.network",
        "homepage": "https://github.com/danielegrattarola/spektral"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae4cb1149deb49c48d58bfc2b68fe6fc502d6c896c69eaf9997de45ad24b6fca",
                "md5": "646ac2567b7b2cfd81dc489528ee1233",
                "sha256": "12f50967d80a5fc7dd639c2a3e25a202d720934b837f61f6a6686f51ce731ba3"
            },
            "downloads": -1,
            "filename": "spektral-1.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "646ac2567b7b2cfd81dc489528ee1233",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 140099,
            "upload_time": "2024-01-21T16:17:36",
            "upload_time_iso_8601": "2024-01-21T16:17:36.477862Z",
            "url": "https://files.pythonhosted.org/packages/ae/4c/b1149deb49c48d58bfc2b68fe6fc502d6c896c69eaf9997de45ad24b6fca/spektral-1.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a3a1b1215ed6dd078649170e3e995b4cbd052920e60bbc7a8082a1f3c03c4299",
                "md5": "35ee1cba6cc3c16e060a0021e2bbeecb",
                "sha256": "953d9954995b8b434dd0f464e25407ad83446d39fe7a23543a8e2fec8c01eb8b"
            },
            "downloads": -1,
            "filename": "spektral-1.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "35ee1cba6cc3c16e060a0021e2bbeecb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 94414,
            "upload_time": "2024-01-21T16:17:38",
            "upload_time_iso_8601": "2024-01-21T16:17:38.007818Z",
            "url": "https://files.pythonhosted.org/packages/a3/a1/b1215ed6dd078649170e3e995b4cbd052920e60bbc7a8082a1f3c03c4299/spektral-1.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-21 16:17:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "danielegrattarola",
    "github_project": "spektral",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "spektral"
}
        
Elapsed time: 0.17442s