pyg-nightly 2.6.0.dev20240704__py3-none-any.whl → 2.8.0.dev20251207__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyg-nightly might be problematic. Click here for more details.
- {pyg_nightly-2.6.0.dev20240704.dist-info → pyg_nightly-2.8.0.dev20251207.dist-info}/METADATA +81 -58
- {pyg_nightly-2.6.0.dev20240704.dist-info → pyg_nightly-2.8.0.dev20251207.dist-info}/RECORD +265 -221
- {pyg_nightly-2.6.0.dev20240704.dist-info → pyg_nightly-2.8.0.dev20251207.dist-info}/WHEEL +1 -1
- pyg_nightly-2.8.0.dev20251207.dist-info/licenses/LICENSE +19 -0
- torch_geometric/__init__.py +34 -1
- torch_geometric/_compile.py +11 -3
- torch_geometric/_onnx.py +228 -0
- torch_geometric/config_mixin.py +8 -3
- torch_geometric/config_store.py +1 -1
- torch_geometric/contrib/__init__.py +1 -1
- torch_geometric/contrib/explain/pgm_explainer.py +1 -1
- torch_geometric/data/__init__.py +19 -1
- torch_geometric/data/batch.py +2 -2
- torch_geometric/data/collate.py +1 -3
- torch_geometric/data/data.py +110 -6
- torch_geometric/data/database.py +19 -5
- torch_geometric/data/dataset.py +14 -9
- torch_geometric/data/extract.py +1 -1
- torch_geometric/data/feature_store.py +17 -22
- torch_geometric/data/graph_store.py +3 -2
- torch_geometric/data/hetero_data.py +139 -7
- torch_geometric/data/hypergraph_data.py +2 -2
- torch_geometric/data/in_memory_dataset.py +2 -2
- torch_geometric/data/lightning/datamodule.py +42 -28
- torch_geometric/data/storage.py +9 -1
- torch_geometric/datasets/__init__.py +20 -1
- torch_geometric/datasets/actor.py +7 -9
- torch_geometric/datasets/airfrans.py +17 -20
- torch_geometric/datasets/airports.py +8 -10
- torch_geometric/datasets/amazon.py +8 -11
- torch_geometric/datasets/amazon_book.py +8 -9
- torch_geometric/datasets/amazon_products.py +7 -9
- torch_geometric/datasets/aminer.py +8 -9
- torch_geometric/datasets/aqsol.py +10 -13
- torch_geometric/datasets/attributed_graph_dataset.py +8 -10
- torch_geometric/datasets/ba_multi_shapes.py +10 -12
- torch_geometric/datasets/ba_shapes.py +5 -6
- torch_geometric/datasets/brca_tgca.py +1 -1
- torch_geometric/datasets/city.py +157 -0
- torch_geometric/datasets/dbp15k.py +1 -1
- torch_geometric/datasets/gdelt_lite.py +3 -2
- torch_geometric/datasets/ged_dataset.py +3 -2
- torch_geometric/datasets/git_mol_dataset.py +263 -0
- torch_geometric/datasets/gnn_benchmark_dataset.py +3 -2
- torch_geometric/datasets/hgb_dataset.py +2 -2
- torch_geometric/datasets/hm.py +1 -1
- torch_geometric/datasets/instruct_mol_dataset.py +134 -0
- torch_geometric/datasets/linkx_dataset.py +4 -3
- torch_geometric/datasets/lrgb.py +3 -5
- torch_geometric/datasets/malnet_tiny.py +2 -1
- torch_geometric/datasets/md17.py +3 -3
- torch_geometric/datasets/medshapenet.py +145 -0
- torch_geometric/datasets/mnist_superpixels.py +2 -3
- torch_geometric/datasets/modelnet.py +1 -1
- torch_geometric/datasets/molecule_gpt_dataset.py +492 -0
- torch_geometric/datasets/molecule_net.py +3 -2
- torch_geometric/datasets/neurograph.py +1 -3
- torch_geometric/datasets/ogb_mag.py +1 -1
- torch_geometric/datasets/opf.py +19 -5
- torch_geometric/datasets/pascal_pf.py +1 -1
- torch_geometric/datasets/pcqm4m.py +2 -1
- torch_geometric/datasets/ppi.py +2 -1
- torch_geometric/datasets/protein_mpnn_dataset.py +451 -0
- torch_geometric/datasets/qm7.py +1 -1
- torch_geometric/datasets/qm9.py +3 -2
- torch_geometric/datasets/shrec2016.py +2 -2
- torch_geometric/datasets/snap_dataset.py +8 -4
- torch_geometric/datasets/tag_dataset.py +462 -0
- torch_geometric/datasets/teeth3ds.py +269 -0
- torch_geometric/datasets/web_qsp_dataset.py +342 -0
- torch_geometric/datasets/wikics.py +2 -1
- torch_geometric/datasets/wikidata.py +2 -1
- torch_geometric/deprecation.py +1 -1
- torch_geometric/distributed/__init__.py +13 -0
- torch_geometric/distributed/dist_loader.py +2 -2
- torch_geometric/distributed/local_feature_store.py +3 -2
- torch_geometric/distributed/local_graph_store.py +2 -1
- torch_geometric/distributed/partition.py +9 -8
- torch_geometric/distributed/rpc.py +3 -3
- torch_geometric/edge_index.py +35 -22
- torch_geometric/explain/algorithm/attention_explainer.py +219 -29
- torch_geometric/explain/algorithm/base.py +2 -2
- torch_geometric/explain/algorithm/captum.py +1 -1
- torch_geometric/explain/algorithm/captum_explainer.py +2 -1
- torch_geometric/explain/algorithm/gnn_explainer.py +406 -69
- torch_geometric/explain/algorithm/graphmask_explainer.py +8 -8
- torch_geometric/explain/algorithm/pg_explainer.py +305 -47
- torch_geometric/explain/explainer.py +2 -2
- torch_geometric/explain/explanation.py +89 -5
- torch_geometric/explain/metric/faithfulness.py +1 -1
- torch_geometric/graphgym/checkpoint.py +2 -1
- torch_geometric/graphgym/config.py +3 -2
- torch_geometric/graphgym/imports.py +15 -4
- torch_geometric/graphgym/logger.py +1 -1
- torch_geometric/graphgym/loss.py +1 -1
- torch_geometric/graphgym/models/encoder.py +2 -2
- torch_geometric/graphgym/models/layer.py +1 -1
- torch_geometric/graphgym/utils/comp_budget.py +4 -3
- torch_geometric/hash_tensor.py +798 -0
- torch_geometric/index.py +16 -7
- torch_geometric/inspector.py +6 -2
- torch_geometric/io/fs.py +27 -0
- torch_geometric/io/tu.py +2 -3
- torch_geometric/llm/__init__.py +9 -0
- torch_geometric/llm/large_graph_indexer.py +741 -0
- torch_geometric/llm/models/__init__.py +23 -0
- torch_geometric/llm/models/g_retriever.py +251 -0
- torch_geometric/llm/models/git_mol.py +336 -0
- torch_geometric/llm/models/glem.py +397 -0
- torch_geometric/llm/models/llm.py +470 -0
- torch_geometric/llm/models/llm_judge.py +158 -0
- torch_geometric/llm/models/molecule_gpt.py +222 -0
- torch_geometric/llm/models/protein_mpnn.py +333 -0
- torch_geometric/llm/models/sentence_transformer.py +188 -0
- torch_geometric/llm/models/txt2kg.py +353 -0
- torch_geometric/llm/models/vision_transformer.py +38 -0
- torch_geometric/llm/rag_loader.py +154 -0
- torch_geometric/llm/utils/__init__.py +10 -0
- torch_geometric/llm/utils/backend_utils.py +443 -0
- torch_geometric/llm/utils/feature_store.py +169 -0
- torch_geometric/llm/utils/graph_store.py +199 -0
- torch_geometric/llm/utils/vectorrag.py +125 -0
- torch_geometric/loader/cluster.py +6 -5
- torch_geometric/loader/graph_saint.py +2 -1
- torch_geometric/loader/ibmb_loader.py +4 -4
- torch_geometric/loader/link_loader.py +1 -1
- torch_geometric/loader/link_neighbor_loader.py +2 -1
- torch_geometric/loader/mixin.py +6 -5
- torch_geometric/loader/neighbor_loader.py +1 -1
- torch_geometric/loader/neighbor_sampler.py +2 -2
- torch_geometric/loader/prefetch.py +4 -3
- torch_geometric/loader/temporal_dataloader.py +2 -2
- torch_geometric/loader/utils.py +10 -10
- torch_geometric/metrics/__init__.py +23 -2
- torch_geometric/metrics/link_pred.py +755 -85
- torch_geometric/nn/__init__.py +1 -0
- torch_geometric/nn/aggr/__init__.py +2 -0
- torch_geometric/nn/aggr/base.py +1 -1
- torch_geometric/nn/aggr/equilibrium.py +1 -1
- torch_geometric/nn/aggr/fused.py +1 -1
- torch_geometric/nn/aggr/patch_transformer.py +149 -0
- torch_geometric/nn/aggr/set_transformer.py +1 -1
- torch_geometric/nn/aggr/utils.py +9 -4
- torch_geometric/nn/attention/__init__.py +9 -1
- torch_geometric/nn/attention/polynormer.py +107 -0
- torch_geometric/nn/attention/qformer.py +71 -0
- torch_geometric/nn/attention/sgformer.py +99 -0
- torch_geometric/nn/conv/__init__.py +2 -0
- torch_geometric/nn/conv/appnp.py +1 -1
- torch_geometric/nn/conv/collect.jinja +6 -3
- torch_geometric/nn/conv/cugraph/gat_conv.py +8 -2
- torch_geometric/nn/conv/cugraph/rgcn_conv.py +3 -0
- torch_geometric/nn/conv/cugraph/sage_conv.py +3 -0
- torch_geometric/nn/conv/dna_conv.py +1 -1
- torch_geometric/nn/conv/eg_conv.py +7 -7
- torch_geometric/nn/conv/gat_conv.py +33 -4
- torch_geometric/nn/conv/gatv2_conv.py +35 -4
- torch_geometric/nn/conv/gen_conv.py +1 -1
- torch_geometric/nn/conv/general_conv.py +1 -1
- torch_geometric/nn/conv/gravnet_conv.py +2 -1
- torch_geometric/nn/conv/hetero_conv.py +3 -2
- torch_geometric/nn/conv/meshcnn_conv.py +487 -0
- torch_geometric/nn/conv/message_passing.py +6 -5
- torch_geometric/nn/conv/mixhop_conv.py +1 -1
- torch_geometric/nn/conv/rgcn_conv.py +2 -1
- torch_geometric/nn/conv/sg_conv.py +1 -1
- torch_geometric/nn/conv/spline_conv.py +2 -1
- torch_geometric/nn/conv/ssg_conv.py +1 -1
- torch_geometric/nn/conv/transformer_conv.py +5 -3
- torch_geometric/nn/data_parallel.py +5 -4
- torch_geometric/nn/dense/linear.py +5 -24
- torch_geometric/nn/encoding.py +17 -3
- torch_geometric/nn/fx.py +17 -15
- torch_geometric/nn/model_hub.py +5 -16
- torch_geometric/nn/models/__init__.py +11 -0
- torch_geometric/nn/models/attentive_fp.py +1 -1
- torch_geometric/nn/models/attract_repel.py +148 -0
- torch_geometric/nn/models/basic_gnn.py +2 -1
- torch_geometric/nn/models/captum.py +1 -1
- torch_geometric/nn/models/deep_graph_infomax.py +1 -1
- torch_geometric/nn/models/dimenet.py +2 -2
- torch_geometric/nn/models/dimenet_utils.py +4 -2
- torch_geometric/nn/models/gpse.py +1083 -0
- torch_geometric/nn/models/graph_unet.py +13 -4
- torch_geometric/nn/models/lpformer.py +783 -0
- torch_geometric/nn/models/metapath2vec.py +1 -1
- torch_geometric/nn/models/mlp.py +4 -2
- torch_geometric/nn/models/node2vec.py +1 -1
- torch_geometric/nn/models/polynormer.py +206 -0
- torch_geometric/nn/models/rev_gnn.py +3 -3
- torch_geometric/nn/models/schnet.py +2 -1
- torch_geometric/nn/models/sgformer.py +219 -0
- torch_geometric/nn/models/signed_gcn.py +1 -1
- torch_geometric/nn/models/visnet.py +2 -2
- torch_geometric/nn/norm/batch_norm.py +17 -7
- torch_geometric/nn/norm/diff_group_norm.py +7 -2
- torch_geometric/nn/norm/graph_norm.py +9 -4
- torch_geometric/nn/norm/instance_norm.py +5 -1
- torch_geometric/nn/norm/layer_norm.py +15 -7
- torch_geometric/nn/norm/msg_norm.py +8 -2
- torch_geometric/nn/pool/__init__.py +15 -9
- torch_geometric/nn/pool/cluster_pool.py +144 -0
- torch_geometric/nn/pool/connect/base.py +1 -3
- torch_geometric/nn/pool/edge_pool.py +1 -1
- torch_geometric/nn/pool/knn.py +13 -10
- torch_geometric/nn/pool/select/base.py +1 -4
- torch_geometric/nn/summary.py +1 -1
- torch_geometric/nn/to_hetero_module.py +4 -3
- torch_geometric/nn/to_hetero_transformer.py +3 -3
- torch_geometric/nn/to_hetero_with_bases_transformer.py +5 -5
- torch_geometric/profile/__init__.py +2 -0
- torch_geometric/profile/nvtx.py +66 -0
- torch_geometric/profile/profiler.py +18 -9
- torch_geometric/profile/utils.py +20 -5
- torch_geometric/sampler/__init__.py +2 -1
- torch_geometric/sampler/base.py +337 -8
- torch_geometric/sampler/hgt_sampler.py +11 -1
- torch_geometric/sampler/neighbor_sampler.py +298 -25
- torch_geometric/sampler/utils.py +93 -5
- torch_geometric/testing/__init__.py +4 -0
- torch_geometric/testing/decorators.py +35 -5
- torch_geometric/testing/distributed.py +1 -1
- torch_geometric/transforms/__init__.py +4 -0
- torch_geometric/transforms/add_gpse.py +49 -0
- torch_geometric/transforms/add_metapaths.py +10 -8
- torch_geometric/transforms/add_positional_encoding.py +2 -2
- torch_geometric/transforms/base_transform.py +2 -1
- torch_geometric/transforms/delaunay.py +65 -15
- torch_geometric/transforms/face_to_edge.py +32 -3
- torch_geometric/transforms/gdc.py +8 -9
- torch_geometric/transforms/largest_connected_components.py +1 -1
- torch_geometric/transforms/mask.py +5 -1
- torch_geometric/transforms/node_property_split.py +1 -1
- torch_geometric/transforms/normalize_features.py +3 -3
- torch_geometric/transforms/pad.py +1 -1
- torch_geometric/transforms/random_link_split.py +1 -1
- torch_geometric/transforms/remove_duplicated_edges.py +4 -2
- torch_geometric/transforms/remove_self_loops.py +36 -0
- torch_geometric/transforms/rooted_subgraph.py +1 -1
- torch_geometric/transforms/svd_feature_reduction.py +1 -1
- torch_geometric/transforms/virtual_node.py +2 -1
- torch_geometric/typing.py +82 -17
- torch_geometric/utils/__init__.py +6 -1
- torch_geometric/utils/_lexsort.py +0 -9
- torch_geometric/utils/_negative_sampling.py +28 -13
- torch_geometric/utils/_normalize_edge_index.py +46 -0
- torch_geometric/utils/_scatter.py +126 -164
- torch_geometric/utils/_sort_edge_index.py +0 -2
- torch_geometric/utils/_spmm.py +16 -14
- torch_geometric/utils/_subgraph.py +4 -0
- torch_geometric/utils/_tree_decomposition.py +1 -1
- torch_geometric/utils/_trim_to_layer.py +2 -2
- torch_geometric/utils/augmentation.py +1 -1
- torch_geometric/utils/convert.py +17 -10
- torch_geometric/utils/cross_entropy.py +34 -13
- torch_geometric/utils/embedding.py +91 -2
- torch_geometric/utils/geodesic.py +28 -25
- torch_geometric/utils/influence.py +279 -0
- torch_geometric/utils/map.py +14 -10
- torch_geometric/utils/nested.py +1 -1
- torch_geometric/utils/smiles.py +3 -3
- torch_geometric/utils/sparse.py +32 -24
- torch_geometric/visualization/__init__.py +2 -1
- torch_geometric/visualization/graph.py +250 -5
- torch_geometric/warnings.py +11 -2
- torch_geometric/nn/nlp/__init__.py +0 -7
- torch_geometric/nn/nlp/llm.py +0 -283
- torch_geometric/nn/nlp/sentence_transformer.py +0 -94
{pyg_nightly-2.6.0.dev20240704.dist-info → pyg_nightly-2.8.0.dev20251207.dist-info}/METADATA
RENAMED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pyg-nightly
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.8.0.dev20251207
|
|
4
4
|
Summary: Graph Neural Network Library for PyTorch
|
|
5
5
|
Keywords: deep-learning,pytorch,geometric-deep-learning,graph-neural-networks,graph-convolutional-networks
|
|
6
6
|
Author-email: Matthias Fey <matthias@pyg.org>
|
|
7
|
-
Requires-Python: >=3.
|
|
7
|
+
Requires-Python: >=3.10
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
|
+
License-Expression: MIT
|
|
9
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
11
11
|
Classifier: Programming Language :: Python
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
14
12
|
Classifier: Programming Language :: Python :: 3.10
|
|
15
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
16
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
+
License-File: LICENSE
|
|
18
18
|
Requires-Dist: aiohttp
|
|
19
19
|
Requires-Dist: fsspec
|
|
20
20
|
Requires-Dist: jinja2
|
|
@@ -23,6 +23,7 @@ Requires-Dist: psutil>=5.8.0
|
|
|
23
23
|
Requires-Dist: pyparsing
|
|
24
24
|
Requires-Dist: requests
|
|
25
25
|
Requires-Dist: tqdm
|
|
26
|
+
Requires-Dist: xxhash
|
|
26
27
|
Requires-Dist: matplotlib ; extra == "benchmark"
|
|
27
28
|
Requires-Dist: networkx ; extra == "benchmark"
|
|
28
29
|
Requires-Dist: pandas ; extra == "benchmark"
|
|
@@ -43,7 +44,6 @@ Requires-Dist: networkx ; extra == "full"
|
|
|
43
44
|
Requires-Dist: numba<0.60.0 ; extra == "full"
|
|
44
45
|
Requires-Dist: opt_einsum ; extra == "full"
|
|
45
46
|
Requires-Dist: pandas ; extra == "full"
|
|
46
|
-
Requires-Dist: pgmpy ; extra == "full"
|
|
47
47
|
Requires-Dist: pynndescent ; extra == "full"
|
|
48
48
|
Requires-Dist: pytorch-memlab ; extra == "full"
|
|
49
49
|
Requires-Dist: rdflib ; extra == "full"
|
|
@@ -56,11 +56,19 @@ Requires-Dist: torch_geometric[graphgym, modelhub] ; extra == "full"
|
|
|
56
56
|
Requires-Dist: torchmetrics ; extra == "full"
|
|
57
57
|
Requires-Dist: trimesh ; extra == "full"
|
|
58
58
|
Requires-Dist: protobuf<4.21 ; extra == "graphgym"
|
|
59
|
-
Requires-Dist: pytorch-lightning
|
|
59
|
+
Requires-Dist: pytorch-lightning ; extra == "graphgym"
|
|
60
60
|
Requires-Dist: yacs ; extra == "graphgym"
|
|
61
61
|
Requires-Dist: huggingface_hub ; extra == "modelhub"
|
|
62
|
+
Requires-Dist: pcst_fast ; extra == "rag"
|
|
63
|
+
Requires-Dist: datasets ; extra == "rag"
|
|
64
|
+
Requires-Dist: transformers ; extra == "rag"
|
|
65
|
+
Requires-Dist: pandas ; extra == "rag"
|
|
66
|
+
Requires-Dist: sentencepiece ; extra == "rag"
|
|
67
|
+
Requires-Dist: accelerate ; extra == "rag"
|
|
68
|
+
Requires-Dist: torchmetrics ; extra == "rag"
|
|
62
69
|
Requires-Dist: onnx ; extra == "test"
|
|
63
70
|
Requires-Dist: onnxruntime ; extra == "test"
|
|
71
|
+
Requires-Dist: onnxscript ; extra == "test"
|
|
64
72
|
Requires-Dist: pytest ; extra == "test"
|
|
65
73
|
Requires-Dist: pytest-cov ; extra == "test"
|
|
66
74
|
Project-URL: changelog, https://github.com/pyg-team/pytorch_geometric/blob/master/CHANGELOG.md
|
|
@@ -72,6 +80,7 @@ Provides-Extra: dev
|
|
|
72
80
|
Provides-Extra: full
|
|
73
81
|
Provides-Extra: graphgym
|
|
74
82
|
Provides-Extra: modelhub
|
|
83
|
+
Provides-Extra: rag
|
|
75
84
|
Provides-Extra: test
|
|
76
85
|
|
|
77
86
|
<p align="center">
|
|
@@ -80,14 +89,21 @@ Provides-Extra: test
|
|
|
80
89
|
|
|
81
90
|
______________________________________________________________________
|
|
82
91
|
|
|
92
|
+
<div align="center">
|
|
93
|
+
|
|
83
94
|
[![PyPI Version][pypi-image]][pypi-url]
|
|
84
|
-
[![
|
|
85
|
-
[![Linting Status][linting-image]][linting-url]
|
|
86
|
-
[![Docs Status][docs-image]][docs-url]
|
|
87
|
-
[![Contributing][contributing-image]][contributing-url]
|
|
95
|
+
[![PyPI Download][pypi-download-image]][pypi-download-url]
|
|
88
96
|
[![Slack][slack-image]][slack-url]
|
|
97
|
+
[![Contributing][contributing-image]][contributing-url]
|
|
89
98
|
|
|
90
|
-
**[Documentation](https://pytorch-geometric.readthedocs.io)** |
|
|
99
|
+
**[Documentation](https://pytorch-geometric.readthedocs.io)** |
|
|
100
|
+
**[PyG 1.0 Paper](https://arxiv.org/abs/1903.02428)** |
|
|
101
|
+
**[PyG 2.0 Paper](https://arxiv.org/abs/2507.16991)** |
|
|
102
|
+
**[Colab Notebooks](https://pytorch-geometric.readthedocs.io/en/latest/get_started/colabs.html)** |
|
|
103
|
+
**[External Resources](https://pytorch-geometric.readthedocs.io/en/latest/external/resources.html)** |
|
|
104
|
+
**[OGB Examples](https://github.com/snap-stanford/ogb/tree/master/examples)**
|
|
105
|
+
|
|
106
|
+
</div>
|
|
91
107
|
|
|
92
108
|
**PyG** *(PyTorch Geometric)* is a library built upon [PyTorch](https://pytorch.org/) to easily write and train Graph Neural Networks (GNNs) for a wide range of applications related to structured data.
|
|
93
109
|
|
|
@@ -185,7 +201,7 @@ More information about evaluating final model performance can be found in the co
|
|
|
185
201
|
In addition to the easy application of existing GNNs, PyG makes it simple to implement custom Graph Neural Networks (see [here](https://pytorch-geometric.readthedocs.io/en/latest/tutorial/create_gnn.html) for the accompanying tutorial).
|
|
186
202
|
For example, this is all it takes to implement the [edge convolutional layer](https://arxiv.org/abs/1801.07829) from Wang *et al.*:
|
|
187
203
|
|
|
188
|
-
$$x_i^{\\prime} ~ = ~ \\max\_{j \\in \\mathcal{N}(i)} ~ \\textrm{MLP}\_{\\theta} \\left(
|
|
204
|
+
$$x_i^{\\prime} ~ = ~ \\max\_{j \\in \\mathcal{N}(i)} ~ \\textrm{MLP}\_{\\theta} \\left( [ ~ x_i, ~ x_j - x_i ~ ] \\right)$$
|
|
189
205
|
|
|
190
206
|
```python
|
|
191
207
|
import torch
|
|
@@ -252,7 +268,7 @@ These GNN layers can be stacked together to create Graph Neural Network models.
|
|
|
252
268
|
- **[EGConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.EGConv.html)** from Tailor *et al.*: [Adaptive Filters and Aggregator Fusion for Efficient Graph Convolutions](https://arxiv.org/abs/2104.01481) (GNNSys 2021) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/egc.py)\]
|
|
253
269
|
- **[GATv2Conv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GATv2Conv.html)** from Brody *et al.*: [How Attentive are Graph Attention Networks?](https://arxiv.org/abs/2105.14491) (ICLR 2022)
|
|
254
270
|
- **[TransformerConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.TransformerConv.html)** from Shi *et al.*: [Masked Label Prediction: Unified Message Passing Model for Semi-Supervised Classification](https://arxiv.org/abs/2009.03509) (CoRR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/unimp_arxiv.py)\]
|
|
255
|
-
- **[SAGEConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SAGEConv.html)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/
|
|
271
|
+
- **[SAGEConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.SAGEConv.html)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/ogbn_train.py), [**Example3**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_sage_unsup.py), [**Example4**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_sage_unsup_ppi.py)\]
|
|
256
272
|
- **[GraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GraphConv.html)** from, *e.g.*, Morris *et al.*: [Weisfeiler and Leman Go Neural: Higher-order Graph Neural Networks](https://arxiv.org/abs/1810.02244) (AAAI 2019)
|
|
257
273
|
- **[GatedGraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.GatedGraphConv.html)** from Li *et al.*: [Gated Graph Sequence Neural Networks](https://arxiv.org/abs/1511.05493) (ICLR 2016)
|
|
258
274
|
- **[ResGatedGraphConv](https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.nn.conv.ResGatedGraphConv.html)** from Bresson and Laurent: [Residual Gated Graph ConvNets](https://arxiv.org/abs/1711.07553) (CoRR 2017)
|
|
@@ -395,7 +411,7 @@ Such application is challenging since the entire graph, its associated features
|
|
|
395
411
|
Many state-of-the-art scalability approaches tackle this challenge by sampling neighborhoods for mini-batch training, graph clustering and partitioning, or by using simplified GNN models.
|
|
396
412
|
These approaches have been implemented in PyG, and can benefit from the above GNN layers, operators and models.
|
|
397
413
|
|
|
398
|
-
- **[NeighborLoader](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.NeighborLoader)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/
|
|
414
|
+
- **[NeighborLoader](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.NeighborLoader)** from Hamilton *et al.*: [Inductive Representation Learning on Large Graphs](https://arxiv.org/abs/1706.02216) (NIPS 2017) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/ogbn_train.py), [**Example3**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/hetero/to_hetero_mag.py)\]
|
|
399
415
|
- **[ClusterGCN](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.ClusterLoader)** from Chiang *et al.*: [Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks](https://arxiv.org/abs/1905.07953) (KDD 2019) \[[**Example1**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/cluster_gcn_reddit.py), [**Example2**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/cluster_gcn_ppi.py)\]
|
|
400
416
|
- **[GraphSAINT](https://pytorch-geometric.readthedocs.io/en/latest/modules/loader.html#torch_geometric.loader.GraphSAINTSampler)** from Zeng *et al.*: [GraphSAINT: Graph Sampling Based Inductive Learning Method](https://arxiv.org/abs/1907.04931) (ICLR 2020) \[[**Example**](https://github.com/pyg-team/pytorch_geometric/blob/master/examples/graph_saint.py)\]
|
|
401
417
|
|
|
@@ -410,19 +426,7 @@ These approaches have been implemented in PyG, and can benefit from the above GN
|
|
|
410
426
|
|
|
411
427
|
## Installation
|
|
412
428
|
|
|
413
|
-
PyG is available for Python 3.
|
|
414
|
-
|
|
415
|
-
### Anaconda
|
|
416
|
-
|
|
417
|
-
You can now install PyG via [Anaconda](https://anaconda.org/pyg/pyg) for all major OS/PyTorch/CUDA combinations 🤗
|
|
418
|
-
If you have not yet installed PyTorch, install it via `conda` as described in the [official PyTorch documentation](https://pytorch.org/get-started/locally/).
|
|
419
|
-
Given that you have PyTorch installed (`>=1.8.0`), simply run
|
|
420
|
-
|
|
421
|
-
```
|
|
422
|
-
conda install pyg -c pyg
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
### PyPi
|
|
429
|
+
PyG is available for Python 3.10 to Python 3.13.
|
|
426
430
|
|
|
427
431
|
From **PyG 2.3** onwards, you can install and use PyG **without any external library** required except for PyTorch.
|
|
428
432
|
For this, simply run
|
|
@@ -447,39 +451,55 @@ We recommend to start with a minimal installation, and install additional depend
|
|
|
447
451
|
|
|
448
452
|
For ease of installation of these extensions, we provide `pip` wheels for all major OS/PyTorch/CUDA combinations, see [here](https://data.pyg.org/whl).
|
|
449
453
|
|
|
450
|
-
#### PyTorch 2.
|
|
454
|
+
#### PyTorch 2.8
|
|
451
455
|
|
|
452
|
-
To install the binaries for PyTorch 2.
|
|
456
|
+
To install the binaries for PyTorch 2.8.0, simply run
|
|
453
457
|
|
|
454
458
|
```
|
|
455
|
-
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.
|
|
459
|
+
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.8.0+${CUDA}.html
|
|
456
460
|
```
|
|
457
461
|
|
|
458
|
-
where `${CUDA}` should be replaced by either `cpu`, `
|
|
462
|
+
where `${CUDA}` should be replaced by either `cpu`, `cu126`, `cu128`, or `cu129` depending on your PyTorch installation.
|
|
459
463
|
|
|
460
|
-
| | `cpu` | `
|
|
461
|
-
| ----------- | ----- | ------- | ------- |
|
|
462
|
-
| **Linux** | ✅
|
|
463
|
-
| **Windows** | ✅
|
|
464
|
-
| **macOS** | ✅
|
|
464
|
+
| | `cpu` | `cu126` | `cu128` | `cu129` |
|
|
465
|
+
| ----------- | ----- | ------- | ------- | ------- |
|
|
466
|
+
| **Linux** | ✅ | ✅ | ✅ | ✅ |
|
|
467
|
+
| **Windows** | ✅ | ✅ | ✅ | ✅ |
|
|
468
|
+
| **macOS** | ✅ | | | |
|
|
465
469
|
|
|
466
|
-
#### PyTorch 2.
|
|
470
|
+
#### PyTorch 2.7
|
|
467
471
|
|
|
468
|
-
To install the binaries for PyTorch 2.
|
|
472
|
+
To install the binaries for PyTorch 2.7.0, simply run
|
|
469
473
|
|
|
470
474
|
```
|
|
471
|
-
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.
|
|
475
|
+
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.7.0+${CUDA}.html
|
|
472
476
|
```
|
|
473
477
|
|
|
474
|
-
where `${CUDA}` should be replaced by either `cpu`, `cu118`, or `
|
|
478
|
+
where `${CUDA}` should be replaced by either `cpu`, `cu118`, `cu126`, or `cu128` depending on your PyTorch installation.
|
|
475
479
|
|
|
476
|
-
| | `cpu` | `cu118` | `
|
|
477
|
-
| ----------- | ----- | ------- | ------- |
|
|
478
|
-
| **Linux** | ✅
|
|
479
|
-
| **Windows** | ✅
|
|
480
|
-
| **macOS** | ✅
|
|
480
|
+
| | `cpu` | `cu118` | `cu126` | `cu128` |
|
|
481
|
+
| ----------- | ----- | ------- | ------- | ------- |
|
|
482
|
+
| **Linux** | ✅ | ✅ | ✅ | ✅ |
|
|
483
|
+
| **Windows** | ✅ | ✅ | ✅ | ✅ |
|
|
484
|
+
| **macOS** | ✅ | | | |
|
|
481
485
|
|
|
482
|
-
|
|
486
|
+
#### PyTorch 2.6
|
|
487
|
+
|
|
488
|
+
To install the binaries for PyTorch 2.6.0, simply run
|
|
489
|
+
|
|
490
|
+
```
|
|
491
|
+
pip install pyg_lib torch_scatter torch_sparse torch_cluster torch_spline_conv -f https://data.pyg.org/whl/torch-2.6.0+${CUDA}.html
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
where `${CUDA}` should be replaced by either `cpu`, `cu118`, `cu124`, or `cu126` depending on your PyTorch installation.
|
|
495
|
+
|
|
496
|
+
| | `cpu` | `cu118` | `cu124` | `cu126` |
|
|
497
|
+
| ----------- | ----- | ------- | ------- | ------- |
|
|
498
|
+
| **Linux** | ✅ | ✅ | ✅ | ✅ |
|
|
499
|
+
| **Windows** | ✅ | ✅ | ✅ | ✅ |
|
|
500
|
+
| **macOS** | ✅ | | | |
|
|
501
|
+
|
|
502
|
+
**Note:** Binaries of older versions are also provided for PyTorch 1.4.0, PyTorch 1.5.0, PyTorch 1.6.0, PyTorch 1.7.0/1.7.1, PyTorch 1.8.0/1.8.1, PyTorch 1.9.0, PyTorch 1.10.0/1.10.1/1.10.2, PyTorch 1.11.0, PyTorch 1.12.0/1.12.1, PyTorch 1.13.0/1.13.1, PyTorch 2.0.0/2.0.1, PyTorch 2.1.0/2.1.1/2.1.2, PyTorch 2.2.0/2.2.1/2.2.2, PyTorch 2.3.0/2.3.1, PyTorch 2.4.0/2.4.1, and PyTorch 2.5.0/2.5.1 (following the same procedure).
|
|
483
503
|
**For older versions, you might need to explicitly specify the latest supported version number** or install via `pip install --no-index` in order to prevent a manual installation from source.
|
|
484
504
|
You can look up the latest supported version number [here](https://data.pyg.org/whl).
|
|
485
505
|
|
|
@@ -508,7 +528,7 @@ If you have any questions about it, please open an issue [here](https://github.c
|
|
|
508
528
|
|
|
509
529
|
## Cite
|
|
510
530
|
|
|
511
|
-
Please cite
|
|
531
|
+
Please cite our [PyG 1.0](https://arxiv.org/abs/1903.02428) and [PyG 2.0](https://www.arxiv.org/abs/2507.16991) papers if you use this code in your own work:
|
|
512
532
|
|
|
513
533
|
```
|
|
514
534
|
@inproceedings{Fey/Lenssen/2019,
|
|
@@ -517,6 +537,13 @@ Please cite [our paper](https://arxiv.org/abs/1903.02428) (and the respective pa
|
|
|
517
537
|
booktitle={ICLR Workshop on Representation Learning on Graphs and Manifolds},
|
|
518
538
|
year={2019},
|
|
519
539
|
}
|
|
540
|
+
|
|
541
|
+
@inproceedings{Fey/etal/2025,
|
|
542
|
+
title={{PyG} 2.0: Scalable Learning on Real World Graphs},
|
|
543
|
+
author={Fey, Matthias and Sunil, Jinu and Nitta, Akihiro and Puri, Rishi and Shah, Manan, and Stojanovi{\v{c}, Bla{\v{z} and Bendias, Ramona and Alexandria, Barghi and Kocijan, Vid and Zhang, Zecheng and He, Xinwei and Lenssen, Jan E. and Leskovec, Jure},
|
|
544
|
+
booktitle={Temporal Graph Learning Workshop @ KDD},
|
|
545
|
+
year={2025},
|
|
546
|
+
}
|
|
520
547
|
```
|
|
521
548
|
|
|
522
549
|
Feel free to [email us](mailto:matthias.fey@tu-dortmund.de) if you wish your work to be listed in the [external resources](https://pytorch-geometric.readthedocs.io/en/latest/external/resources.html).
|
|
@@ -524,16 +551,12 @@ If you notice anything unexpected, please open an [issue](https://github.com/pyg
|
|
|
524
551
|
If you have any questions or are missing a specific feature, feel free [to discuss them with us](https://github.com/pyg-team/pytorch_geometric/discussions).
|
|
525
552
|
We are motivated to constantly make PyG even better.
|
|
526
553
|
|
|
527
|
-
[contributing-image]: https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat
|
|
554
|
+
[contributing-image]: https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat&color=4B26A4
|
|
528
555
|
[contributing-url]: https://github.com/pyg-team/pytorch_geometric/blob/master/.github/CONTRIBUTING.md
|
|
529
|
-
[
|
|
530
|
-
[
|
|
531
|
-
[
|
|
532
|
-
[linting-url]: https://github.com/pyg-team/pytorch_geometric/actions/workflows/linting.yml
|
|
533
|
-
[pypi-image]: https://badge.fury.io/py/torch-geometric.svg
|
|
556
|
+
[pypi-download-image]: https://img.shields.io/pypi/dm/torch_geometric?color=4B26A4
|
|
557
|
+
[pypi-download-url]: https://pepy.tech/projects/torch_geometric
|
|
558
|
+
[pypi-image]: https://img.shields.io/pypi/pyversions/torch-geometric?color=4B26A4
|
|
534
559
|
[pypi-url]: https://pypi.python.org/pypi/torch-geometric
|
|
535
|
-
[slack-image]: https://img.shields.io/badge/slack-
|
|
560
|
+
[slack-image]: https://img.shields.io/badge/slack-join-white.svg?logo=slack&color=4B26A4
|
|
536
561
|
[slack-url]: https://data.pyg.org/slack.html
|
|
537
|
-
[testing-image]: https://github.com/pyg-team/pytorch_geometric/actions/workflows/testing.yml/badge.svg
|
|
538
|
-
[testing-url]: https://github.com/pyg-team/pytorch_geometric/actions/workflows/testing.yml
|
|
539
562
|
|