Skip to content

Releases: pyg-team/pytorch_geometric

1.6.2

27 Nov 07:18
Compare
Choose a tag to compare

Features

Minor improvements

  • The SIGN example now operates on mini-batches of nodes
  • Improved data loading runtime of InMemoryDatasets
  • NeighborSampler does now work with SparseTensor as input
  • ToUndirected transform in order to convert directed graphs to undirected ones
  • GNNExplainer does now allow for customizable edge and node feature loss reduction
  • aggr can now passed to any GNN based on the MessagePassing interface (thanks to @m30m)
  • Runtime improvements in SEAL (thanks to @muhanzhang)
  • Runtime improvements in torch_geometric.utils.softmax (thanks to @Book1996)
  • GAE.recon_loss now supports custom negative edge indices (thanks to @reshinthadithyan)
  • Faster spmm computation and random_walk sampling on CPU (torch-sparse and torch-cluster updates required)
  • DataParallel does now support the follow_batch argument
  • Parallel approximate PPR computation in the GDC transform (thanks to @klicperajo)
  • Improved documentation by providing an autosummary of all subpackages (thanks to @m30m)
  • Improved documentation on how edge weights are handled in various GNNs (thanks to @m30m)

Bugfixes

  • Fixed a bug in GATConv when computing attention coefficients in bipartite graphs
  • Fixed a bug in GraphSAINTSampler that led to wrong edge feature sampling
  • Fixed the DimeNet pretraining link
  • Fixed a bug in processing ego-twitter and ego-gplus of the SNAPDataset collection
  • Fixed a number of broken dataset URLs (ICEWS18, QM9, QM7b, MoleculeNet, Entities, PPI, Reddit, MNISTSuperpixels, ShapeNet)
  • Fixed a bug in which MessagePassing.jittable() tried to write to a file without permission (thanks to @twoertwein)
  • GCNConv does not require edge_weight in case normalize=False
  • Batch.num_graphs will now report the correct amount of graphs in case of zero-sized graphs

1.6.1

05 Aug 13:22
Compare
Choose a tag to compare

This is a minor release, mostly focusing on PyTorch 1.6.0 support. All external wheels are now also available for PyTorch 1.6.0.

New Features

Bugfixes

  • Fixed a bug which prevented GNNExplainer to work with GATConv
  • Fixed the MessagePassing.jittable call when installing PyG via pip
  • Fixed a bug in torch-sparse where reduce functions with dim=0 did not yield the correct result
  • Fixed a bug in torch-sparse which suppressed all warnings

1.6.0

07 Jul 06:27
Compare
Choose a tag to compare

A new major release, introducing TorchScript support, memory-efficient aggregations, bipartite GNN modules, static graphs and much more!

Major Features

  • TorchScript support, see here for the accompanying tutorial (thanks to @lgray and @liaopeiyuan)
  • Memory-efficient aggregations via torch_sparse.SparseTensor, see here for the accompanying tutorial
  • Most GNN modules can now operate on bipartite graphs (and some of them can also operate on different feature dimensionalities for source and target nodes), useful for neighbor sampling or heterogeneous graphs:
conv = SAGEConv(in_channels=(32, 64), out_channels=64)
out = conv((x_src, x_dst), edge_index)
  • Static graph support:
conv = GCNConv(in_channels=32, out_channels=64)

x = torch.randn(batch_size, num_nodes, in_channels)
out = conv(x, edge_index)
print(out.size())
>>> torch.Size([batch_size, num_nodes, out_channels])

Additional Features

Breaking Changes

Complementary Frameworks

  • DeepSNAP: A PyTorch library that bridges between graph libraries such as NetworkX and PyTorch Geometric
  • PyTorch Geometric Temporal: A temporal GNN library built upon PyTorch Geometric

Datasets

Bugfixes

1.5.0

25 May 05:31
Compare
Choose a tag to compare

This release is a big one thanks to many wonderful contributors. You guys are awesome!

Breaking Changes and Highlights

  • NeighborSampler got completely revamped: it's now much faster, allows for parallel sampling, and allows to easily apply skip-connections or self-loops. See examples/reddit.py or the newly introduced OGB examples (examples/ogbn_products_sage.py and examples/ogbn_products_gat.py). The latter also sets a new SOTA on the OGB leaderboards (reaching 0.7945 ± 0.0059 test accuracy)
  • SAGEConv now uses concat=True by default, and there is no option to disable it anymore
  • Node2Vec got enhanced by a parallel sampling mechanism, and as a result, its API slightly changed
  • MetaPath2Vec: The first model in PyG that is able to operate on heteregenous graphs
  • GNNExplainer: Generating explanations for graph neural networks
  • GraphSAINT: A graph sampling based inductive learning method
  • SchNet model for learning on molecular graphs, comes with pre-trained weights for each target of the QM9 dataset (thanks to @Nyuten)

Additional Features

Datasets

Minor changes

  • GATConv can now return attention weights via the return_attention_weights argument (thanks to @douglasrizzo)
  • InMemoryDataset now has a copy method that converts sliced datasets back into a contiguous memory layout
  • Planetoid got enhanced by the ability to let users choose between different splitting methods (thanks to @dongkwan-kim)
  • k_hop_subgraph: Computes the k-hop subgraph around a subset of nodes
  • geodesic_distance: Geodesic distances can now be computed in parallel (thanks to @jannessm)
  • tree_decomposition: The tree decompostion algorithm for generating junction trees from molecules
  • SortPool benchmark script now uses 1-D convolutions after pooling, leading to better performance (thanks to @muhanzhang)

Bugfixes

1.4.3

17 Mar 18:05
Compare
Choose a tag to compare

Features

Datasets

Minor Changes

Bugfixes

  • Fixed SplineConv compatibility with latest torch-spline-conv package
  • trimesh conversion utilities do not longer result in a permutation of the input data

1.4.2

18 Feb 15:26
Compare
Choose a tag to compare

Minor Changes

  • There are now Python wheels available for torch-scatter and torch-sparse which should make the installation procedure much more user-friendly. Simply run
pip install torch-scatter==latest+${CUDA} torch-sparse==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-1.4.0.html
pip install torch-geometric

where ${CUDA} should be replaced by either cpu, cu92, cu100 or cu101 depending on your PyTorch installation.

  • torch-cluster is now an optional dependency. All methods that rely on torch-cluster will result in an error requesting you to install torch-cluster.
  • torch_geometric.data.Dataset can now also be indexed and shuffled:
dataset.shuffle()[:50]

Bugfixes

  • Fixed a bug that prevented the user from saving MessagePassing modules.
  • Fixed a bug in RGCNConv when using root_weight=False.

1.4.1

04 Feb 11:57
Compare
Choose a tag to compare

This release mainly focuses on torch-scatter=2.0 support. As a result, PyTorch Geometric now requires PyTorch 1.4. If you are in the process of updating to PyTorch 1.4, please ensure that you also re-install all related external packages.

Features

  • Graph Diffusion Convolution
  • MinCUT Pooling
  • CGCNNConv
  • TUDataset cleaned versions, containing only non-isomorphic graphs
  • GridSampling transform
  • ShapeNet dataset now comes with normals and better split options
  • TriMesh conversion utilities
  • ToSLIC transform for superpixel generation from images
  • Re-writing of MessagePassing interface with custom aggregate methods (no API changes)

Bugfixes

  • Fixed some failure modes of from_networkx.

1.3.2

04 Oct 08:18
Compare
Choose a tag to compare

This release focuses on Pytorch 1.2 support and removes all torch.bool deprecation warnings. As a result, this release now requires PyTorch 1.2. If you are in the process of updating to PyTorch 1.2, please ensure that you also re-install all related external packages.

Overall, this release brings the following new features/bugfixes:

Features

  • Prints out a warning in case the pre_transform and pre_filter arguments differ from an already processed version

Bugfixes

  • Removed all torch.bool deprecation warnings
  • Fixed ARGA initialization bug
  • Fixed a pre-processing bug in QM9

1.3.1

29 Aug 07:41
Compare
Choose a tag to compare

This is a minor release which is mostly distributed for official PyTorch 1.2 support. In addition, it provides minor bugfixes and the following new features:

Modules

  • Non-normalized ChebConv in combination with a largest eigenvalue transform
  • TAGCN
  • Graph U-Net
  • Node2Vec
  • EdgePooling
  • Alternative GMMConv formulation with separate kernels
  • Alternative Top-K pooling formulation based on thresholds with examples on synthetic COLORS and TRIANGLES datasets

Datasets

  • Pascal VOC 2011 with Berkeley keypoint annotations (PascalVOCKeypoints)
  • DBP15K dataset
  • WILLOWObjectClass dataset

Please also update related external packages via, e.g.:

$ pip install --upgrade torch-cluster

1.3.0

29 Jun 14:25
Compare
Choose a tag to compare
  • Support for giant graph handling using NeighborSampler and bipartite message passing operators
  • Debugging support using the new debug API
  • Fixed TUDataset download errors
  • Added FeasStConv module
  • Improved networkx conversion functionality
  • Improved Data and DataLoader handling with customizable number_of_nodes (e.g. for holding two graphs in a single Data object)
  • Added GeniePath example
  • Added SAGPool module
  • Added geodesic distance computation using gdist (optional)
  • Improved PointNet and DGCNN classification and segmentation examples
  • Added subgraph functionality
  • Fixed GMMConv
  • Added a bunch of new datasets
  • Added fast implementations for random graph generation
  • Improved loop API
  • Minor bugfixes

Thanks to all contributors!