v1.1
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
andget_j
must be updated to useget_targets
andget_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