Model or dataset
benedekrozemberczki/pytorch_geometric_temporal avatar
benedekrozemberczki/pytorch_geometric_temporal

pytorch_geometric_temporal: one dependency pinned, four left unbounded

PyTorch Geometric Temporal: Spatiotemporal Signal Processing with Neural Machine Learning Models (CIKM 2021)

2,992 stars402 forksPythonMIT

At a glance

What is it?
PyTorch Geometric Temporal is a temporal extension library for PyTorch Geometric, and its setup file is old fashioned in a way that shows. One dependency is frozen with an exact version from 2020, the four that matter most have no version constraint at all, the declared version is ahead of any tag, and the download URL points at a 2022 release.
Who is it for?
PyTorch Geometric Temporal is a reasonable choice if you already have PyTorch Geometric installed and want recurrent and attention based temporal graph layers without writing them, plus the dataset loaders that come with them. It is a poor choice to pin against, because there is no tag matching the declared version, the declared download URL points at a release from 2022, and the install metadata advertises Python 3.6 with no ceiling.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 128 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 4, 2026, and from our analysis. They are not legal advice.

Editorial analysis

decorator is pinned to 4.4.2 and torch has no constraint at all

The install requirement list has six entries and only one of them carries a version. It reads decorator==4.4.2, torch, cython, torch_geometric, numpy, networkx. So a small utility library written and released around 2019 is frozen to a single patch release while the four libraries that determine whether the package works at all, the tensor library, the graph library, the extension compiler and the array library, are declared with no lower and no upper bound. There is no pyproject file in the tree, so this classic setup call is the whole of the packaging metadata. The three extras are additive rather than layered. The test extra carries pytest, pytest-cov, mock, networkx, tqdm, dask, pandas, tables and scipy. The index extra carries dask, pandas and tables. The ddp extra carries dask with its distributed extra, dask_pytorch_ddp, pandas and tables, so the distributed path and the index path are not in the base install.

The declared version is 0.56.2 and the download URL points at a 2022 tag

Two fields in the same setup call disagree with each other and with the release history. The version argument reads 0.56.2. The download_url argument reads an archive path ending in v0.54.0.tar.gz, and that tag is dated 2022-09-04. So the URL that tells a package index where the source distribution for this build came from resolves to a release made roughly three and a half years earlier than the declared version. The newest tag in the repository's release list is 0.56.0 from 2025-03-28, so the declared version is two patch revisions ahead of anything published, which means a build from the current tree is not identifiable from a tag at all. The last push on the default branch master is dated 2026-05-30, seventeen months after that newest tag, so the gap between what is published and what is on the branch is wider still.

The tag prefixes disagree and one release sat for two and a half years

The three most recent releases have three different tagging conventions. The newest is tagged 0.56.0, with no v, and its title is v0.56.0 - Index-Batching, so the tag and the title disagree about the prefix. The one before is tagged 0.55.0, also without a v, and its title is Bug fixes in import and data loading with no version in it at all. The third is tagged v0.54.0, with the v, and its title is 0.54.0. Simplify test environment and installation. So a script that matches on a v prefix will find one release out of three, and a script that reads the title will find a version number in two of them and a sentence in the third. The dates are the other surprise: 0.54.0 is from September 2022, 0.55.0 from February 2025 and 0.56.0 from March 2025, so there is a two and a half year gap and then a six week one.

python_requires says 3.6 with no ceiling and the only classifier is 3.6

The interpreter requirement is python_requires=">=3.6", which sets a floor and no ceiling. The classifier list then adds exactly one interpreter line, Programming Language :: Python :: 3.6, and no others. So the metadata claims the package supports every Python from 3.6 upward while naming only the oldest one it claims. In practice the floor is set by its dependencies rather than by this project, since torch, torch_geometric and cython each carry their own minimum, and none of them is pinned here. Two other classifiers are worth reading. The topic is declared as Software Development :: Build Tools, which places a graph neural network library in the build tools category. The development status is declared as 3 - Alpha, on a project whose readme describes index-batching, two published case studies and integration with PyTorch Lightning.

The keyword list spells deep learning three ways

The keyword argument has twenty entries and a third of them are the same two concepts written with different separators. Deep learning appears as deep-learning, then deeplearning, then deep learning with a space. Machine learning appears as machine-learning, then machine learning. Learning appears on its own as well, which is a term broad enough to match almost any project on an index. The remaining entries are the ones that do work: signal processing, temporal signal, graph, dynamic graph, embedding, dynamic embedding, graph convolution, gcn, graph neural network, graph attention, lstm, temporal network and representation learning. So the metadata is padded in a way that is harmless to an installer and unhelpful to a person trying to work out whether this is the library they want, and the padding sits next to a topic classifier that places the package in build tools.

The first citation block closes with a stray backtick and the example stops mid line

Two small formatting faults are visible in the readme and both are in the parts a reader copies. The first citation block is the CIKM 2021 inproceedings entry, with the author list, the booktitle and pages 4564 to 4573. After the closing brace there is a line containing two backticks and then the closing fence, so the block is malformed and will render wrong. The second citation block is a separate misc entry for a 2025 preprint on scaling spatio-temporal graph networks with memory-efficient distributed training, with an arXiv identifier and a primary class of cs.DC, and that one is well formed. The Python example has the same problem in a different way. The class is a recurrent graph convolution network built from two graph convolutional GRU cells and a linear layer, and the visible listing ends partway through the forward method:

python
class RecurrentGCN(torch.nn.Module):

    def __init__(self, node_features, num_classes):
        super(RecurrentGCN, self).__init__()
        self.recurrent_1 = GConvGRU(node_features, 32, 5)
        self.recurrent_2 = GConvGRU(32, 16, 5)
        self.linear = torch.nn.Linear(16, num_classes)

The last line of the visible listing is a bare x, and the line that applies the linear layer is not on the page.

Index-batching claims no accuracy cost and the ddp extra names a package oddly

The readme's main technical claim is that the library now supports index-batching, described as a new batching technique that improves spatiotemporal memory efficiency without any impact on accuracy, with examples under examples/indexBatching that let users customize training and scale to larger datasets than previously possible. The accuracy claim is asserted in the readme rather than demonstrated there, and no comparison table appears in the visible portion. Paired with it is support for memory-efficient distributed data parallel training using Dask-DDP in combination with index-batching, which is what the ddp extra is for. One detail in that extra is a naming inconsistency worth knowing if you script an install: the requirement is written as dask_pytorch_ddp with underscores, while the other entry in the same list uses the extras syntax dask[distributed]. Package indexes normally normalise those characters, so this is untidy rather than broken.

The dataset directory sits in the repository and there is no pyproject file

The top level tells you how the project is laid out and what era it belongs to. There is a dataset/ directory, so some data ships in the repository, alongside docs/, examples/, notebooks/, test/ and the torch_geometric_temporal/ package itself. There is a readthedocs.yml for the documentation build and a setup.py for the package, and no pyproject.toml at all, which is why the metadata above is limited to what a setup call can express: no build-system table, no dynamic version, no PEP 621 project table. The examples tree as listed holds two directories, indexBatching and recurrent, and the readme separately points at notebooks/ for the attention based models. The documentation, in contrast, is a full site on readthedocs with case study tutorials split by training style, an incremental training case study on epidemiological forecasting and a cumulative training case study on web traffic management.

Editorial conclusion

PyTorch Geometric Temporal is a reasonable choice if you already have PyTorch Geometric installed and want recurrent and attention based temporal graph layers without writing them, plus the dataset loaders that come with them. It is a poor choice to pin against, because there is no tag matching the declared version, the declared download URL points at a release from 2022, and the install metadata advertises Python 3.6 with no ceiling. Before depending on it, pin the four unbounded requirements yourself in your own project rather than trusting the library's list, and check the two extras you actually need, since the distributed and index features are not in the base install at all.

Frequently asked questions

install pytorch geometric temporal

The install requirements are decorator==4.4.2, torch, cython, torch_geometric, numpy and networkx, with no version constraint on any entry except the pinned decorator. Three extras exist: test for pytest and friends, index for dask, pandas and tables, and ddp for dask with its distributed extra plus dask_pytorch_ddp. The package also declares python_requires >=3.6.

What is PyTorch Geometric Temporal?

It is a temporal, dynamic extension library for PyTorch Geometric, made up of dynamic and temporal geometric deep learning, embedding and spatio-temporal regression methods from published papers. It ships an easy-to-use dataset loader, a train-test splitter and a temporal snapshot iterator, and benchmark datasets from epidemiological forecasting, sharing economy, energy production and web traffic management.

What is index-batching in this library?

It is described as a new batching technique that improves spatiotemporal memory efficiency without any impact on accuracy, with worked examples under examples/indexBatching. The readme also pairs it with memory-efficient distributed data parallel training using Dask-DDP, which is what the ddp extra installs.

Which version of pytorch_geometric_temporal is current?

The newest tag is 0.56.0 from 2025-03-28, the one before is 0.55.0 from 2025-02-09, and v0.54.0 dates from 2022-09-04. The setup file declares version 0.56.2, which is ahead of every tag, and its download_url points at the v0.54.0 source archive. The last push on master is dated 2026-05-30.

What is the relationship to PyTorch Geometric and PyTorch Lightning?

It is an extension library for PyTorch Geometric rather than a replacement, and it pairs with PyTorch Lightning, which the readme says allows training on CPUs and on single or multiple GPUs out of the box. Recurrent models such as a graph convolutional GRU are documented with detailed examples under examples/recurrent, and notebooks cover the attention based ones.

Why use PyTorch Geometric rather than something else?

This page does not answer that. It describes what this library adds on top of PyTorch Geometric, being temporal and dynamic graph methods plus dataset loaders, split helpers and benchmark datasets, and it makes no comparison with other graph libraries.

Official sources

  1. benedekrozemberczki/pytorch_geometric_temporal on GitHub
  2. Issues
  3. License: MIT
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/benedekrozemberczki-pytorch-geometric-temporal.svg)](https://hysenlabs.com/projects/benedekrozemberczki-pytorch-geometric-temporal)