← all repositories
microsoft/gated-graph-neural-network-samples

Microsoft's archived GNN reference code still teaches the basics

Four variants of gated graph neural networks in legacy TensorFlow, frozen in time but still useful for understanding how message passing on molecules works.

1k stars Python ML FrameworksDomain Apps
gated-graph-neural-network-samples
Velocity · 7d
+0.3
★ / day
Trend
steady
star history

What it does

This is Microsoft’s 2018 reference implementation of Gated Graph Neural Networks (Li et al. 2015), applied to predicting chemical properties of molecules. It ships four variants: dense GGNN, sparse GGNN, asynchronous GGNN, and sparse Graph Convolutional Networks (Kipf et al. 2016). The code handles data extraction via RDKit, training, and model checkpointing with pickle files.

The interesting bit

The README is admirably honest about trade-offs: dense is faster for small graphs, sparse for large ones, and asynchronous GGNNs are “far more inefficient” per step yet can propagate across a whole graph in a single round. That kind of frank performance discussion is rarer than it should be in research code.

Key highlights

  • Four GNN variants in one repo with clear usage examples
  • Sparse/dense split lets you match implementation to graph structure
  • Includes a one-liner config to run Schlichtkrull et al.’s relational GCN variant
  • Model checkpointing and restoration via pickle files
  • Originally maintained by Microsoft Research Cambridge’s Deep Program Understanding group

Caveats

  • Explicitly unmaintained; Microsoft points users to tf-gnn-samples instead
  • Locked to Python 3.5 and TensorFlow 1.3 — expect dependency archaeology
  • Asynchronous implementation is slow by design; the README warns it exists mainly for conceptual completeness

Verdict

Worth a read if you’re implementing GNNs from scratch and want a clean, pedagogical reference. Skip it if you need production code or modern frameworks; the successor repo is the pragmatic choice.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.