Skip to content

v1.1

Compare
Choose a tag to compare
@danielegrattarola danielegrattarola released this 09 Apr 13:44
· 73 commits to master since this release

v1.1

This release mostly introduces the new Select, Reduce, Connect API for pooling layers and a bunch of features, improvements, and bugfixes from previous patches.

Most of the new features are backward compatible with two notable exceptions:

  • pooling layers must be ported to the new SRC interface. See the documentation for more details.
  • Custom MessagePassing layers that used get_i and get_j must be updated to use get_targets and get_sources. This only affects you if you have a custom implementation based on the MessagePassing class, otherwise the change will be transparent.

This version of Spektral supports Python >=3.6 and up, and TensorFlow >=2.2.

New features

  • New general class for pooling methods based on the Select, Reduce, Connect framework (https://arxiv.org/abs/2110.05292)
  • Node-level labels support to BatchLoader
  • New GCN model
  • GNNExplainer model
  • XENetConv convolutional layer
  • LaPool pooling layer
  • GATConv now supports weighted adjacency matrices

Compatibility changes

  • Update minimum supported Python version to 3.6
  • Update minimum supported TensorFlow version to 2.2

API changes

  • Remove channels argument from CrystalConv (output must be the same size as input)
  • All pooling layers are now based on SRC and have a unified interface. See docs for more details (migration from the old layers should be straightforward by changing relevant keyword arguments)
  • Rename "i" and "j" with "targets" and "sources" in the MessagePassing-based classes

Bugfixes

  • Fix bug in GlobalAttnSumPool that caused the readout to apply attention to the full disjoint batch
  • Fixed parsing of QM9 to return the full 19-dimensional labels

Other

  • Minor fixes in examples
  • GCN/GAT examples are now more consistent with the original papers