All Projects → danielegrattarola → Keras Gat

danielegrattarola / Keras Gat

Licence: mit
Keras implementation of the graph attention networks (GAT) by Veličković et al. (2017; https://arxiv.org/abs/1710.10903)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Keras Gat

Graph attention pool
Attention over nodes in Graph Neural Networks using PyTorch (NeurIPS 2019)
Stars: ✭ 186 (-44.31%)
Mutual labels:  graph, attention-mechanism
Yolo Multi Backbones Attention
Model Compression—YOLOv3 with multi lightweight backbones(ShuffleNetV2 HuaWei GhostNet), attention, prune and quantization
Stars: ✭ 317 (-5.09%)
Mutual labels:  attention-mechanism
Alphafold2
To eventually become an unofficial Pytorch implementation / replication of Alphafold2, as details of the architecture get released
Stars: ✭ 298 (-10.78%)
Mutual labels:  attention-mechanism
Vim Flog
A lightweight and powerful git branch viewer for vim.
Stars: ✭ 314 (-5.99%)
Mutual labels:  graph
Coderchef Kitchen
The official repository for our programming kitchen which consists of 50+ delicious programming recipes having all the interesting ingredients ranging from dynamic programming, graph theory, linked lists and much more. All the articles contain beautiful images and some gif/video at times to help clear important concepts.
Stars: ✭ 306 (-8.38%)
Mutual labels:  graph
Popoto
Visual query builder for Neo4j graph database
Stars: ✭ 318 (-4.79%)
Mutual labels:  graph
Adaptiveattention
Implementation of "Knowing When to Look: Adaptive Attention via A Visual Sentinel for Image Captioning"
Stars: ✭ 303 (-9.28%)
Mutual labels:  attention-mechanism
Vivagraphjs
Graph drawing library for JavaScript
Stars: ✭ 3,442 (+930.54%)
Mutual labels:  graph
Curvegraphview
A highly customizable and performant custom view to render curved line graph.
Stars: ✭ 321 (-3.89%)
Mutual labels:  graph
Logseq
A privacy-first, open-source platform for knowledge management and collaboration. Desktop app download link: https://github.com/logseq/logseq/releases, roadmap: https://trello.com/b/8txSM12G/roadmap
Stars: ✭ 8,210 (+2358.08%)
Mutual labels:  graph
Constellation
A graph-focused data visualisation and interactive analysis application.
Stars: ✭ 309 (-7.49%)
Mutual labels:  graph
Tensorflow end2end speech recognition
End-to-End speech recognition implementation base on TensorFlow (CTC, Attention, and MTL training)
Stars: ✭ 305 (-8.68%)
Mutual labels:  attention-mechanism
Swiftplot
Swift library for Data Visualization 📊
Stars: ✭ 319 (-4.49%)
Mutual labels:  graph
Seq2seq Summarizer
Pointer-generator reinforced seq2seq summarization in PyTorch
Stars: ✭ 306 (-8.38%)
Mutual labels:  attention-mechanism
Algorithms.js
Atwood's Law applied to CS101 - Classic algorithms and data structures implemented in JavaScript
Stars: ✭ 3,322 (+894.61%)
Mutual labels:  graph
Morpheus
Morpheus brings the leading graph query language, Cypher, onto the leading distributed processing platform, Spark.
Stars: ✭ 303 (-9.28%)
Mutual labels:  graph
Seq2seq chatbot
基于seq2seq模型的简单对话系统的tf实现,具有embedding、attention、beam_search等功能,数据集是Cornell Movie Dialogs
Stars: ✭ 308 (-7.78%)
Mutual labels:  attention-mechanism
Flutter Candlesticks
Elegant OHLC Candlestick and Trade Volume charts for @Flutter
Stars: ✭ 318 (-4.79%)
Mutual labels:  graph
Nodz
Nodz : Visualize your data - Free nodes based graph generator.
Stars: ✭ 330 (-1.2%)
Mutual labels:  graph
Pathfinding
Pathfinding library for rust
Stars: ✭ 324 (-2.99%)
Mutual labels:  graph

Keras Graph Attention Network

DEPRECATED
This implementation of GAT is no longer actively maintained and may not work with modern versions of Tensorflow and Keras. Check out Spektral and its GAT example for a Tensorflow/Keras implementation of GAT.

This is a Keras implementation of the Graph Attention Network (GAT) model by Veličković et al. (2017, [arXiv link]).

Acknowledgements

I have no affiliation with the authors of the paper and I am implementing this code for non-commercial reasons.
The authors published their reference Tensorflow implementation here, so check it out for something that is guaranteed to work as intended. Their implementation is slightly different than mine, so that may be something to keep in mind. You should cite the paper if you use any of this code for your research:

@article{
  velickovic2018graph,
  title="{Graph Attention Networks}",
  author={Veli{\v{c}}kovi{\'{c}}, Petar and Cucurull, Guillem and Casanova, Arantxa and Romero, Adriana and Li{\`{o}}, Pietro and Bengio, Yoshua},
  journal={International Conference on Learning Representations},
  year={2018},
  url={https://openreview.net/forum?id=rJXMpikCZ},
  note={Accepted as poster},
}

If you would like to give me credit, feel free to link to my Github profile, blog, or Twitter.

I also copied the code in utils.py almost verbatim from this repo by Thomas Kipf, who I thank sincerely for sharing his work on GCNs and GAEs, and for giving me a few pointers on how to split the data into train/test/val sets.

Thanks to mawright, matthias-samwald, and vermaMachineLearning for helping me out with bugs, performance improvements, and running experiments.

Disclaimer

I do not own any rights to the datasets distributed with this code, but they are publicly available at the following links:

Installation

To install as a module:

$ git clone https://github.com/danielegrattarola/keras-gat.git
$ cd keras-gat
$ pip install .
$ python
>>> from keras_gat import GraphAttention

Or you can just copy and paste graph_attention_layer.py into your project.

Replicating experiments

To replicate the experimental results of the paper, simply run:

$ python examples/gat.py
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].