v1.0.0
First release with a stable public API.
What's Changed
- Overall
- Supported TF/Keras versions moved to
>=2.12,<2.16
, incompatible Keras v3 raises a clear error. - Importing the library no longer leaks private module names.
- All parts of the
GraphSchema
protobuf are now exposed undertfgnn.proto.*
. - Model saving now clearly distinguishes export to inference (pure TF, fully supported) from misc ways of saving for model reuse.
- Numerous small bug fixes.
- Supported TF/Keras versions moved to
- Subgraph sampling: major upgrade
- New and unified sampler for in-memory and beam-based subgraph sampling.
- Module
tfgnn.experimental.in_memory
is removed in favor of the new sampler. - New console script
tfgnn_sampler
replaces the oldtfgnn_graph_sampler
.
- GraphTensor
- Most
tfgnn.*
functions on GraphTensor now work in Keras' Functional API, including the factory methodsGraphTensor.from_pieces(...)
etc. - New static checks for GraphTensor field shapes, opt out with
tfgnn.disable_graph_tensor_validation()
. - New runtime checks for GraphTensor field shapes, sizes and index ranges, opt in with
tfgnn.enable_graph_tensor_validation_at_runtime()
. GraphTensor
maintains.row_splits_dtype
separately from.indices_dtype
.- The
GraphSchema
and the I/O functions fortf.Example
now support all non-quantized, non-complex floating-point and integer types as well asbool
andstring
. - Added convenience wrapper
tfgnn.pool_neighbors_to_node()
. - Misc fixes to
tfgnn.random_graph_tensor()
, now respects component boundaries.
- Most
- Runner
- New tasks for link prediction and node classification/regression based on structured readout.
- Now comes with API docs.
- Models collection
models/contrastive_losses
gets multiple extensions, including a triplet loss and API docs.models/multi_head_attention
replaces sigmoid with elu+1 in trained scaling.- Bug fixes for mixed precision.
Full Changelog: v0.6.1...v1.0.0