Skip to content

DGF 0.1.0

Latest

Choose a tag to compare

@achoum achoum released this 25 Sep 07:41
· 90 commits to main since this release
a810d45

DGF 0.1.0 Release Notes

Features and improvements

  • Temporal & Time-Series Support:

    • Added end-to-end time-series and temporal graph support in the high-level training API (temporal sampling for link prediction, time-series features in node prediction).
    • Modular time-series feature encoders (including 1D-CNN embedding in EmbedFeatureSet).
    • Automated temporal train/validation splitting (split_train_valid_temporal and automatic temporal splits).
    • Built-in temporal normalizers in AutoNormalizer (time delta extraction, sinusoidal encoding, and calendar feature normalizers).
    • Snapshot-to-temporal graph conversion utility (dgf.data.convert_snapshot_to_temporal).
  • Sampling & Scalability:

    • Python API and workflows for GCP distributed offline graph sampling.
    • Temporal-aware sampling in the offline distributed sampler, including automated inference of edge timestamps from node timestamps.
    • Performance optimizations for the in-process sampler (reduced mutex contention, faster edge deduplication, and multi_visit=False option).
    • Support for sampling individual seed nodes multiple times, tracking #seed_id and #sample_id, and filtering seeds by feature values.
  • Graph Formats & IO:

    • Added TFRecord and RecordIO container support alongside Parquet for graph storage and offline sampling pipelines.
    • Support for explicit file lists as dataset inputs in addition to sharded glob patterns.
    • Direct GCS-aware filesystem helpers (write_text, copy_dir, enhanced exists).
  • Training, Evaluation & Inspection:

    • Device-agnostic model reloading (models trained on GPU can now be reloaded on CPU/TPU).
    • Enhanced model.describe() report with visual graph schema diagrams and captured training warnings/diagnostics.
    • Checkpoint persistence for PRNG random state and early stopping state.
    • Added Average Precision (AP) metric and missing label handling during evaluation.
    • Validation batch auto-splitting for large temporal subgraphs and configurable padding_margin.
    • Track and report skipped training examples, failing if excessive padding skips occur (>10%).
  • Graph Algorithms & Ecosystem:

    • PyTorch Geometric (PyG) interoperability and training examples.
    • New traffic and temporal benchmark datasets (METR-LA, PEMS-BAY, Jena climate).

Bug fixes

  • Fixed graph sampler crash/inconsistency when the same node was visited multiple times from different paths in a sampling plan.
  • Fixed feature collision in AutoNormalizer where features sharing a name across distinct node sets (or matching the target feature name) were erroneously dropped.
  • Fixed unintended 2D matrix conversion when ragged NumPy time-series happened to share identical lengths across all nodes.
  • Fixed inconsistent caching behavior in prepare_from_existing_one for temporal link prediction datasets.
  • Fixed handling of multi-dimensional feature shapes (e.g., (None, 2)) across IO readers.
  • Fixed Graphland dataset cache collision by isolating cache paths per mask split.
  • Fixed scheduler worker configuration (set_num_parlay_workers) and resolved contention timeouts in parallel algorithms.
  • Added validation guards to catch and report NaN losses and features during high-level API training.