pyg-nightly 2.7.0.dev20250501__py3-none-any.whl → 2.7.0.dev20250503__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.
- {pyg_nightly-2.7.0.dev20250501.dist-info → pyg_nightly-2.7.0.dev20250503.dist-info}/METADATA +1 -1
- {pyg_nightly-2.7.0.dev20250501.dist-info → pyg_nightly-2.7.0.dev20250503.dist-info}/RECORD +21 -20
- torch_geometric/__init__.py +1 -1
- torch_geometric/data/batch.py +2 -2
- torch_geometric/data/large_graph_indexer.py +4 -4
- torch_geometric/datasets/__init__.py +2 -0
- torch_geometric/datasets/city.py +156 -0
- torch_geometric/distributed/dist_loader.py +2 -2
- torch_geometric/explain/algorithm/base.py +2 -2
- torch_geometric/explain/algorithm/graphmask_explainer.py +1 -1
- torch_geometric/explain/explainer.py +1 -1
- torch_geometric/explain/explanation.py +1 -1
- torch_geometric/loader/mixin.py +4 -4
- torch_geometric/nn/aggr/base.py +1 -1
- torch_geometric/nn/conv/message_passing.py +2 -2
- torch_geometric/sampler/base.py +1 -1
- torch_geometric/sampler/neighbor_sampler.py +3 -2
- torch_geometric/typing.py +2 -2
- torch_geometric/utils/map.py +5 -4
- {pyg_nightly-2.7.0.dev20250501.dist-info → pyg_nightly-2.7.0.dev20250503.dist-info}/WHEEL +0 -0
- {pyg_nightly-2.7.0.dev20250501.dist-info → pyg_nightly-2.7.0.dev20250503.dist-info}/licenses/LICENSE +0 -0
{pyg_nightly-2.7.0.dev20250501.dist-info → pyg_nightly-2.7.0.dev20250503.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: pyg-nightly
|
3
|
-
Version: 2.7.0.
|
3
|
+
Version: 2.7.0.dev20250503
|
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>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
torch_geometric/__init__.py,sha256=
|
1
|
+
torch_geometric/__init__.py,sha256=7-kRFlFE2mKwcE63U1WfLrdpWzeEUPwnCS7OSAltLWA,1978
|
2
2
|
torch_geometric/_compile.py,sha256=f-WQeH4VLi5Hn9lrgztFUCSrN_FImjhQa6BxFzcYC38,1338
|
3
3
|
torch_geometric/_onnx.py,sha256=V9ffrIKSqhDw6xUZ12lkuSfNs48cQp2EeJ6Z19GfnVw,349
|
4
4
|
torch_geometric/backend.py,sha256=lVaf7aLoVaB3M-UcByUJ1G4T4FOK6LXAg0CF4W3E8jo,1575
|
@@ -19,7 +19,7 @@ torch_geometric/logging.py,sha256=HmHHLiCcM64k-6UYNOSfXPIeSGNAyiGGcn8cD8tlyuQ,85
|
|
19
19
|
torch_geometric/resolver.py,sha256=fn-_6mCpI2xv7eDZnIFcYrHOn0IrwbkWFLDb9laQrWI,1270
|
20
20
|
torch_geometric/seed.py,sha256=MJLbVwpb9i8mK3oi32sS__Cq-dRq_afTeoOL_HoA9ko,372
|
21
21
|
torch_geometric/template.py,sha256=rqjDWgcSAgTCiV4bkOjWRPaO4PpUdC_RXigzxxBqAu8,1060
|
22
|
-
torch_geometric/typing.py,sha256=
|
22
|
+
torch_geometric/typing.py,sha256=bUIcBMcvDGn3DV1p6VFvkQ64fCB3mO2SNrlFxCoKCkc,15624
|
23
23
|
torch_geometric/warnings.py,sha256=t114CbkrmiqkXaavx5g7OO52dLdktf-U__B5QqYIQvI,413
|
24
24
|
torch_geometric/contrib/__init__.py,sha256=0pWkmXfZtbdr-AKwlii5LTFggTEH-MCrSKpZxrtPlVs,352
|
25
25
|
torch_geometric/contrib/datasets/__init__.py,sha256=lrGnWsEiJf5zsBRmshGZZFN_uYR2ezDjbj9n9nCpvtk,23
|
@@ -31,7 +31,7 @@ torch_geometric/contrib/nn/models/__init__.py,sha256=3ia5cX-TPhouLl6jn_HA-Rd2Laa
|
|
31
31
|
torch_geometric/contrib/nn/models/rbcd_attack.py,sha256=qcyxBxAbx8LKzpp3RoJQ0cxl9aB2onsWT4oY1fsM7us,33280
|
32
32
|
torch_geometric/contrib/transforms/__init__.py,sha256=lrGnWsEiJf5zsBRmshGZZFN_uYR2ezDjbj9n9nCpvtk,23
|
33
33
|
torch_geometric/data/__init__.py,sha256=D6Iz5A9vEb_2rpf96Zn7uM-lchZ3WpW8X7WdAD1yxKw,4565
|
34
|
-
torch_geometric/data/batch.py,sha256=
|
34
|
+
torch_geometric/data/batch.py,sha256=8X8CN4_1rjrh48R3R2--mZUgfsO7Po9JP-H6SbrBiBA,8740
|
35
35
|
torch_geometric/data/collate.py,sha256=RRiUMBLxDAitaHx7zF0qiMR2nW1NY_0uaNdxlUo5-bo,12756
|
36
36
|
torch_geometric/data/data.py,sha256=mp_jsjsaVwUcY-FghlqNZTHUQEKBdi7xWR_oA2ewrD4,43821
|
37
37
|
torch_geometric/data/database.py,sha256=VTct1xyzXsK0GZahBV9-noviCzjRteAsKMG7VgJ52n0,22998
|
@@ -44,7 +44,7 @@ torch_geometric/data/graph_store.py,sha256=EtIgsyY7RdBHRTCn34VypEBOG8cg8WzsNT_kT
|
|
44
44
|
torch_geometric/data/hetero_data.py,sha256=IunNWq2cRDox-imtc7w3yxjLI4KfUGXkmk6wddGGnZ0,48601
|
45
45
|
torch_geometric/data/hypergraph_data.py,sha256=33hsXW25Yz4Ju8mKajYinZOrkqrUi1SqThG7MlOOYNM,8294
|
46
46
|
torch_geometric/data/in_memory_dataset.py,sha256=F35hU9Dw3qiJUL5E1CCAfq-1xrlUMstXBmQVEQdtJ1I,13403
|
47
|
-
torch_geometric/data/large_graph_indexer.py,sha256=
|
47
|
+
torch_geometric/data/large_graph_indexer.py,sha256=jSB3St2jT4GUKvmeyr7Hu1ozGk9AQey32Z0XFnkSf4M,25454
|
48
48
|
torch_geometric/data/makedirs.py,sha256=6uOv4y34i947cm4rv7Aj2_YZBq-EOsyPKnlGA188YSw,463
|
49
49
|
torch_geometric/data/on_disk_dataset.py,sha256=77om-e6kzcpBb77kf7um1xY8-yHmQaao_6R7I-3NwHk,6629
|
50
50
|
torch_geometric/data/remote_backend_utils.py,sha256=Rzpq1PczXuHhUscrFtIAL6dua6pMehSJlXG7yEsrrrg,4503
|
@@ -55,7 +55,7 @@ torch_geometric/data/temporal.py,sha256=WOJ6gFrTLikaLhUvotyUF5ql14FkE5Ox3hNkdSp6
|
|
55
55
|
torch_geometric/data/view.py,sha256=XjkVSc-UWZFCT4DlXLShZtO8duhFQkS9gq88zZXANsk,1089
|
56
56
|
torch_geometric/data/lightning/__init__.py,sha256=w3En1tJfy3kSqe1MycpOyZpHFO3fxBCgNCUOznPA3YU,178
|
57
57
|
torch_geometric/data/lightning/datamodule.py,sha256=Bn9iaIfE4NWDDWWMqCvBeZ4bIW1Silx_Ol5CPJCliaQ,29242
|
58
|
-
torch_geometric/datasets/__init__.py,sha256=
|
58
|
+
torch_geometric/datasets/__init__.py,sha256=fgJgc2wztjTJKczuHwXH7L0CgCXw69o_Dtm1KnleMCY,6235
|
59
59
|
torch_geometric/datasets/actor.py,sha256=oUxgJIX8bi5hJr1etWNYIFyVQNDDXi1nyVpHGGMEAGQ,4304
|
60
60
|
torch_geometric/datasets/airfrans.py,sha256=212gYsk7PvF-qcmvM2YXaOBhFrS79evAGg_sPHXih4w,5439
|
61
61
|
torch_geometric/datasets/airports.py,sha256=b3gkv3gY2JkUpmGiz36Z-g7EcnSfU8lBG1YsCOWdJ6k,3758
|
@@ -71,6 +71,7 @@ torch_geometric/datasets/ba_shapes.py,sha256=sJEQiK3CGlYTdbQBgKeLhO6mY-HRv3nS9Ya
|
|
71
71
|
torch_geometric/datasets/bitcoin_otc.py,sha256=olrsq_Z306-oo17iEQoVif3-CgVIOyVc8twgIMXE0iI,4399
|
72
72
|
torch_geometric/datasets/brca_tgca.py,sha256=2lX9oY6T7aPut8NbXFMWS1c2-_FHqCB4hqUzP4_zFsk,3962
|
73
73
|
torch_geometric/datasets/citation_full.py,sha256=5WT6_iZ1GWuShuYZJErQ3bWNV4bHwZsYYBYztoTxMzs,4458
|
74
|
+
torch_geometric/datasets/city.py,sha256=9EFbPDFlEweVYvZL9V4jmuY_wioKTcax0YxeisZbis4,5138
|
74
75
|
torch_geometric/datasets/coauthor.py,sha256=Nma9aLapDE1S7lCC40WazQZbBJ8nMQV3JJZRci-F3XQ,3138
|
75
76
|
torch_geometric/datasets/coma.py,sha256=4URaPuXdUJdtZbzWojR-BqxlTyykjtvmXptk3G2Uy9k,4734
|
76
77
|
torch_geometric/datasets/cornell.py,sha256=i6wUr2m1U3HCaqMzi-0AZ3Nthdne6_t0ja8qCKYESzE,5311
|
@@ -181,7 +182,7 @@ torch_geometric/datasets/utils/cheatsheet.py,sha256=M55Bj64cjMVqDNoIq1shUVeU2ngo
|
|
181
182
|
torch_geometric/distributed/__init__.py,sha256=NNCGXbDTAW5xoJgSr-PK0VYEnT8UCI7SoZXc16fjuxQ,589
|
182
183
|
torch_geometric/distributed/dist_context.py,sha256=n34e2HU-TxmK6DrOpb5lWZu_xg1To1IFrXH4ueF_Jhg,418
|
183
184
|
torch_geometric/distributed/dist_link_neighbor_loader.py,sha256=wM9heZmStrPSW7eo9qWusKdI_lVkDkLlda8ILBqC2c8,4933
|
184
|
-
torch_geometric/distributed/dist_loader.py,sha256=
|
185
|
+
torch_geometric/distributed/dist_loader.py,sha256=Gjvl5Ck8YrFN6YmCWEFWVqLEwI1hog-rWj2Sk_zqYC0,6504
|
185
186
|
torch_geometric/distributed/dist_neighbor_loader.py,sha256=Zi3obALN_T6vJZI_1pWaRj60u9zEk3W5wo8bEKTbYR8,4372
|
186
187
|
torch_geometric/distributed/dist_neighbor_sampler.py,sha256=YrL-NMFOJwHJpF189o4k6dIugo7J9SANaUVgMc36cmE,42406
|
187
188
|
torch_geometric/distributed/event_loop.py,sha256=wr3iwMYEWOGkBlvC5huD2k5YxisaGE9w1Z-8RcQiIQk,3309
|
@@ -192,16 +193,16 @@ torch_geometric/distributed/rpc.py,sha256=rJqiVR6Vbb2mpyVSC0Y5tPApqP-b1ck1Uq3IQp
|
|
192
193
|
torch_geometric/distributed/utils.py,sha256=FGrr3qw7hx7EQaIjjqasurloCFJ9q_0jt8jdSIUjBeM,6567
|
193
194
|
torch_geometric/explain/__init__.py,sha256=pRxVB33zsxhED1StRWdHboQWh3e06__g9N298Hzi42Y,359
|
194
195
|
torch_geometric/explain/config.py,sha256=_0j67NAwPwjrWHPncNywCT-oKyMiryJNxufxVN1BFlM,7834
|
195
|
-
torch_geometric/explain/explainer.py,sha256=
|
196
|
-
torch_geometric/explain/explanation.py,sha256=
|
196
|
+
torch_geometric/explain/explainer.py,sha256=G7SvraTD25_KZEIP0eQ5QAIuHKodRUF37WOcoAJ921U,10677
|
197
|
+
torch_geometric/explain/explanation.py,sha256=5DWNEWhRLptGbnTnMrcugPBHlizUHFlkBx7iwlYo1k4,18883
|
197
198
|
torch_geometric/explain/algorithm/__init__.py,sha256=fE29xbd0bPxg-EfrB2BDmmY9QnyO-7TgvYduGHofm5o,496
|
198
199
|
torch_geometric/explain/algorithm/attention_explainer.py,sha256=65iGLmOt00ERtBDVxAoydIchykdWZU24aXzSzUGzQEI,11304
|
199
|
-
torch_geometric/explain/algorithm/base.py,sha256=
|
200
|
+
torch_geometric/explain/algorithm/base.py,sha256=lXynh9wMAKWN9tuCkcmsmNPwSUExTtgbNl2Nw39NQD0,6942
|
200
201
|
torch_geometric/explain/algorithm/captum.py,sha256=k6hNgC5Kn9lVirOYVJzej8-hRuf5C2mPFUXFLd2wWsY,12857
|
201
202
|
torch_geometric/explain/algorithm/captum_explainer.py,sha256=oz-c40hvdzii4_chEQPHzQo_dFjHr9HLuJhDLsqRIVU,7346
|
202
203
|
torch_geometric/explain/algorithm/dummy_explainer.py,sha256=jvcVQmfngmUWgoKa5p7CXzju2HM5D5DfieJhZW3gbLc,2872
|
203
204
|
torch_geometric/explain/algorithm/gnn_explainer.py,sha256=iu45fGWdd4c6wNczWEAT-29HCAz7ncuoaS6cpx-xDJM,24660
|
204
|
-
torch_geometric/explain/algorithm/graphmask_explainer.py,sha256=
|
205
|
+
torch_geometric/explain/algorithm/graphmask_explainer.py,sha256=6DisYN-dz2vhr1AlTPBIq6xSmpDdaNu306JKeLObNVI,21377
|
205
206
|
torch_geometric/explain/algorithm/pg_explainer.py,sha256=LMlNcqSqtEP-IzYA7Xix6FoAogcrLUaEUAxDVyz2eyc,20162
|
206
207
|
torch_geometric/explain/algorithm/utils.py,sha256=eh0ARPG41V7piVw5jdMYpV0p7WjTlpehnY-bWqPV_zg,2564
|
207
208
|
torch_geometric/explain/metric/__init__.py,sha256=swLeuWVaM3K7UvowsH7q3BzfTq_W1vhcFY8nEP7vFPQ,301
|
@@ -278,7 +279,7 @@ torch_geometric/loader/ibmb_loader.py,sha256=11sg918nIbybr2hoFEO-HA1wYNkL6GFMK9y
|
|
278
279
|
torch_geometric/loader/imbalanced_sampler.py,sha256=clPERglHRk5SyeFevDrgezYFl7ir975OVFMyJwOV090,3754
|
279
280
|
torch_geometric/loader/link_loader.py,sha256=xX9C6c3K5oWAcjMygeDOdxv1mzkP8ePideehsLaDu-w,16207
|
280
281
|
torch_geometric/loader/link_neighbor_loader.py,sha256=CWv1lO_1Anml8kB60-WG4m_AK1rvqP1jwROV6tHWivo,14383
|
281
|
-
torch_geometric/loader/mixin.py,sha256=
|
282
|
+
torch_geometric/loader/mixin.py,sha256=XX2tIXoFj0dYexUiUhTfVCXAQyL63fpk5bS5FqkXo5U,10946
|
282
283
|
torch_geometric/loader/neighbor_loader.py,sha256=vnLn_RhBKTux5h8pi0vzj0d7JPoOpLA3n3vjyIWv9lo,12452
|
283
284
|
torch_geometric/loader/neighbor_sampler.py,sha256=mraVFXIIGctYot4Xr2VOAhCKAOQyW2gP9KROf7g6tcc,8497
|
284
285
|
torch_geometric/loader/node_loader.py,sha256=g_kV5N0tO6eMSFPc5fdbzfHr4COAeKVJi7FEq52f4zc,11848
|
@@ -312,7 +313,7 @@ torch_geometric/nn/to_hetero_transformer.py,sha256=YS4gFOhnMuDstFTPvR18FDyXNaTxx
|
|
312
313
|
torch_geometric/nn/to_hetero_with_bases_transformer.py,sha256=ErWnsgYYHlQgzwdg0eUlgR6fauWPdnddS7XB5ji3OVk,22974
|
313
314
|
torch_geometric/nn/aggr/__init__.py,sha256=_a01GujVyoRSE6-2driodMhC8-jJss4WNIhairYmhHY,1645
|
314
315
|
torch_geometric/nn/aggr/attention.py,sha256=ZaZQijQGDx7Mfsk-kDlxJSCDjN1Vp02YyblR5-3SmnY,2952
|
315
|
-
torch_geometric/nn/aggr/base.py,sha256=
|
316
|
+
torch_geometric/nn/aggr/base.py,sha256=vcWHJlS51mfdYHWmnWEN8b1D57mPM5Y8nqqdVnFm82M,8225
|
316
317
|
torch_geometric/nn/aggr/basic.py,sha256=5CRXpm0VVZb22fMPbMMdqQgh97RYiKiUgZGq3hr7Gbw,11011
|
317
318
|
torch_geometric/nn/aggr/deep_sets.py,sha256=2LSxJJZaWuxRJew-pubmMYc2ynLYWeTyVK47k6OUhq0,2650
|
318
319
|
torch_geometric/nn/aggr/equilibrium.py,sha256=ACGzBR55DeLAeibvGnLH89jCDANn9ET0vDFdgqtzVEs,6639
|
@@ -372,7 +373,7 @@ torch_geometric/nn/conv/hgt_conv.py,sha256=lUhTWUMovMtn9yR_b2-kLNLqHChGOUl2OtXBY
|
|
372
373
|
torch_geometric/nn/conv/hypergraph_conv.py,sha256=4BosbbqJyprlI6QjPqIfMxCqnARU_0mUn1zcAQhbw90,8691
|
373
374
|
torch_geometric/nn/conv/le_conv.py,sha256=DonmmYZOKk5wIlTZzzIfNKqBY6MO0MRxYhyr0YtNz-Q,3494
|
374
375
|
torch_geometric/nn/conv/lg_conv.py,sha256=8jMa79iPsOUbXEfBIc3wmbvAD8T3d1j37LeIFTX3Yag,2369
|
375
|
-
torch_geometric/nn/conv/message_passing.py,sha256=
|
376
|
+
torch_geometric/nn/conv/message_passing.py,sha256=ynTp5MlvHB4SFYnuetK4wWi_1Bj_FhDGAJbf6ZmhEqY,44360
|
376
377
|
torch_geometric/nn/conv/mf_conv.py,sha256=SkOGMN1tFT9dcqy8xYowsB2ozw6QfkoArgR1BksZZaU,4340
|
377
378
|
torch_geometric/nn/conv/mixhop_conv.py,sha256=qVDPWeWcnO7_eHM0ZnpKtr8SISjb4jp0xjgpoDrwjlk,4555
|
378
379
|
torch_geometric/nn/conv/nn_conv.py,sha256=X215RSARaJcfI0JOC7K8ybZMq7SoiO_JhJdp9pPRnE8,4759
|
@@ -511,9 +512,9 @@ torch_geometric/profile/profile.py,sha256=cHCY4U0XtyqyKC5u380q6TspsOZ5tGHNXaZsKu
|
|
511
512
|
torch_geometric/profile/profiler.py,sha256=rfNciRzWDka_BgO6aPFi3cy8mcT4lSgFWy-WfPgI2SI,16891
|
512
513
|
torch_geometric/profile/utils.py,sha256=7h6vzTzW8vv-ZqMOz2DV8HHNgC9ViOrN7IR9d3BPDZ8,5497
|
513
514
|
torch_geometric/sampler/__init__.py,sha256=0h_xJ7CQnlTxF5hUpc81WPQ0QaBtouG8eKK1RzPGA-s,512
|
514
|
-
torch_geometric/sampler/base.py,sha256=
|
515
|
+
torch_geometric/sampler/base.py,sha256=glbuSNcI0A_y-O3x29jqQpSSqSWxUDKJk5vM8uVF8Gs,26980
|
515
516
|
torch_geometric/sampler/hgt_sampler.py,sha256=UAm8_wwzEcziKDJ8-TnfZh1705dXRsy_I5PKhZSDTK8,2721
|
516
|
-
torch_geometric/sampler/neighbor_sampler.py,sha256=
|
517
|
+
torch_geometric/sampler/neighbor_sampler.py,sha256=G3pw3IHSAPEVeepiw-vJeWDbQwpEW9jr4-Ms_HjcZCA,34080
|
517
518
|
torch_geometric/sampler/utils.py,sha256=RJtasO6Q7Pp3oYEOWrbf2DEYuSfuKZOsF2I7-eJDnoA,5485
|
518
519
|
torch_geometric/testing/__init__.py,sha256=m3yp_5UnCAxVgzTFofpiVt0vdbl5GwVAve8WTrAaNxo,1319
|
519
520
|
torch_geometric/testing/asserts.py,sha256=DLC9HnBgFWuTIiQs2OalsQcXGhOVG-e6R99IWhkO32c,4606
|
@@ -620,7 +621,7 @@ torch_geometric/utils/hetero.py,sha256=ok4uAAOyMiaeEPmvyS4DNoDwdKnLS2gmgs5WVVklx
|
|
620
621
|
torch_geometric/utils/isolated.py,sha256=nUxCfMY3q9IIFjelr4eyAJH4sYG9W3lGdpWidnp3dm4,3588
|
621
622
|
torch_geometric/utils/laplacian.py,sha256=ludDil4yS1A27PEuYOjZtCtE3o-t0lnucJKfiqENhvM,3695
|
622
623
|
torch_geometric/utils/loop.py,sha256=MUWUS7a5GxuxLKlCtRq95U1hc3MndybAhqKD5IAe2RY,23051
|
623
|
-
torch_geometric/utils/map.py,sha256=
|
624
|
+
torch_geometric/utils/map.py,sha256=Bioo-NrnH2LBcPsnBJEQjLl0hGnoJkIYgfoLd0ffP5Y,5926
|
624
625
|
torch_geometric/utils/mask.py,sha256=WOsfZLOMf1bunlwI6RH3evptbu0eOwNg19t6VOYboIo,2340
|
625
626
|
torch_geometric/utils/mesh_laplacian.py,sha256=dqUEp7sOCBhWZPnUMAqa93OAj30dTDshcUpstt2iZDc,4387
|
626
627
|
torch_geometric/utils/mixin.py,sha256=h4r5acaeEZ2azvwBcUbybevuoyhLE8qLBiERU7V9w20,699
|
@@ -636,7 +637,7 @@ torch_geometric/utils/undirected.py,sha256=H_nfpI0_WluOG6VfjPyldvcjL4w5USAKWu2x5
|
|
636
637
|
torch_geometric/visualization/__init__.py,sha256=b-HnVesXjyJ_L1N-DnjiRiRVf7lhwKaBQF_2i5YMVSU,208
|
637
638
|
torch_geometric/visualization/graph.py,sha256=PoI9tjbEXZVkMUg4CvTLbzqtEfzUwMUcsw57DNBEU0s,14311
|
638
639
|
torch_geometric/visualization/influence.py,sha256=CWMvuNA_Nf1sfbJmQgn58yS4OFpeKXeZPe7kEuvkUBw,477
|
639
|
-
pyg_nightly-2.7.0.
|
640
|
-
pyg_nightly-2.7.0.
|
641
|
-
pyg_nightly-2.7.0.
|
642
|
-
pyg_nightly-2.7.0.
|
640
|
+
pyg_nightly-2.7.0.dev20250503.dist-info/licenses/LICENSE,sha256=ic-27cMJc1kWoMEYncz3Ya3Ur2Bi3bNLWib2DT763-o,1067
|
641
|
+
pyg_nightly-2.7.0.dev20250503.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
642
|
+
pyg_nightly-2.7.0.dev20250503.dist-info/METADATA,sha256=vXGrJ6ZvEVO9QaA32mDyQfYkV0ulXx5AUTA4NAknMfU,62979
|
643
|
+
pyg_nightly-2.7.0.dev20250503.dist-info/RECORD,,
|
torch_geometric/__init__.py
CHANGED
@@ -31,7 +31,7 @@ from .lazy_loader import LazyLoader
|
|
31
31
|
contrib = LazyLoader('contrib', globals(), 'torch_geometric.contrib')
|
32
32
|
graphgym = LazyLoader('graphgym', globals(), 'torch_geometric.graphgym')
|
33
33
|
|
34
|
-
__version__ = '2.7.0.
|
34
|
+
__version__ = '2.7.0.dev20250503'
|
35
35
|
|
36
36
|
__all__ = [
|
37
37
|
'Index',
|
torch_geometric/data/batch.py
CHANGED
@@ -125,8 +125,8 @@ class Batch(metaclass=DynamicInheritance):
|
|
125
125
|
cls=self.__class__.__bases__[-1],
|
126
126
|
batch=self,
|
127
127
|
idx=idx,
|
128
|
-
slice_dict=
|
129
|
-
inc_dict=
|
128
|
+
slice_dict=self._slice_dict,
|
129
|
+
inc_dict=self._inc_dict,
|
130
130
|
decrement=True,
|
131
131
|
)
|
132
132
|
|
@@ -230,9 +230,9 @@ class LargeGraphIndexer:
|
|
230
230
|
"Only non-mapped features can be retrieved uniquely.")
|
231
231
|
return ordered_set(self.get_node_features(feature_name))
|
232
232
|
|
233
|
-
except KeyError:
|
233
|
+
except KeyError as e:
|
234
234
|
raise AttributeError(
|
235
|
-
f"Nodes do not have a feature called {feature_name}")
|
235
|
+
f"Nodes do not have a feature called {feature_name}") from e
|
236
236
|
|
237
237
|
def add_node_feature(
|
238
238
|
self,
|
@@ -354,9 +354,9 @@ class LargeGraphIndexer:
|
|
354
354
|
raise IndexError(
|
355
355
|
"Only non-mapped features can be retrieved uniquely.")
|
356
356
|
return ordered_set(self.get_edge_features(feature_name))
|
357
|
-
except KeyError:
|
357
|
+
except KeyError as e:
|
358
358
|
raise AttributeError(
|
359
|
-
f"Edges do not have a feature called {feature_name}")
|
359
|
+
f"Edges do not have a feature called {feature_name}") from e
|
360
360
|
|
361
361
|
def add_edge_feature(
|
362
362
|
self,
|
@@ -81,6 +81,7 @@ from .git_mol_dataset import GitMolDataset
|
|
81
81
|
from .molecule_gpt_dataset import MoleculeGPTDataset
|
82
82
|
from .instruct_mol_dataset import InstructMolDataset
|
83
83
|
from .tag_dataset import TAGDataset
|
84
|
+
from .city import CityNetwork
|
84
85
|
|
85
86
|
from .dbp15k import DBP15K
|
86
87
|
from .aminer import AMiner
|
@@ -199,6 +200,7 @@ homo_datasets = [
|
|
199
200
|
'MoleculeGPTDataset',
|
200
201
|
'InstructMolDataset',
|
201
202
|
'TAGDataset',
|
203
|
+
'CityNetwork',
|
202
204
|
]
|
203
205
|
|
204
206
|
hetero_datasets = [
|
@@ -0,0 +1,156 @@
|
|
1
|
+
import os.path as osp
|
2
|
+
from typing import Callable, Optional
|
3
|
+
|
4
|
+
from torch_geometric.data import (
|
5
|
+
Data,
|
6
|
+
InMemoryDataset,
|
7
|
+
download_url,
|
8
|
+
extract_tar,
|
9
|
+
)
|
10
|
+
from torch_geometric.io import fs
|
11
|
+
|
12
|
+
|
13
|
+
class CityNetwork(InMemoryDataset):
|
14
|
+
r"""The City-Networks are introduced in
|
15
|
+
`"Towards Quantifying Long-Range Interactions in Graph Machine Learning:
|
16
|
+
a Large Graph Dataset and a Measurement"
|
17
|
+
<https://arxiv.org/abs/2503.09008>`_ paper.
|
18
|
+
The dataset contains four city networks: `paris`, `shanghai`, `la`,
|
19
|
+
and 'london', where nodes represent junctions and edges represent
|
20
|
+
directed road segments. The task is to predict each node's eccentricity
|
21
|
+
score, which is approximated based on its 16-hop neighborhood. The score
|
22
|
+
indicates how accessible one node is in the network, and is mapped to
|
23
|
+
10 quantiles for transductive classification. See the original
|
24
|
+
`source code <https://github.com/LeonResearch/City-Networks>`_ for more
|
25
|
+
details on the individual networks.
|
26
|
+
|
27
|
+
Args:
|
28
|
+
root (str): Root directory where the dataset should be saved.
|
29
|
+
name (str): The name of the dataset (``"paris"``, ``"shanghai"``,
|
30
|
+
``"la"``, ``"london"``).
|
31
|
+
augmented (bool, optional): Whether to use the augmented node features
|
32
|
+
from edge features.(default: :obj:`True`)
|
33
|
+
transform (callable, optional): A function/transform that takes in an
|
34
|
+
:class:`~torch_geometric.data.Data` object and returns a
|
35
|
+
transformed version. The data object will be transformed before
|
36
|
+
every access. (default: :obj:`None`)
|
37
|
+
pre_transform (callable, optional): A function/transform that takes in
|
38
|
+
an :class:`~torch_geometric.data.Data` object and returns a
|
39
|
+
transformed version. The data object will be transformed before
|
40
|
+
being saved to disk. (default: :obj:`None`)
|
41
|
+
force_reload (bool, optional): Whether to re-process the dataset.
|
42
|
+
(default: :obj:`False`)
|
43
|
+
|
44
|
+
**STATS:**
|
45
|
+
|
46
|
+
.. list-table::
|
47
|
+
:widths: 10 10 10 10 10
|
48
|
+
:header-rows: 1
|
49
|
+
|
50
|
+
* - Name
|
51
|
+
- #nodes
|
52
|
+
- #edges
|
53
|
+
- #features
|
54
|
+
- #classes
|
55
|
+
* - paris
|
56
|
+
- 114,127
|
57
|
+
- 182,511
|
58
|
+
- 37
|
59
|
+
- 10
|
60
|
+
* - shanghai
|
61
|
+
- 183,917
|
62
|
+
- 262,092
|
63
|
+
- 37
|
64
|
+
- 10
|
65
|
+
* - la
|
66
|
+
- 240,587
|
67
|
+
- 341,523
|
68
|
+
- 37
|
69
|
+
- 10
|
70
|
+
* - london
|
71
|
+
- 568,795
|
72
|
+
- 756,502
|
73
|
+
- 37
|
74
|
+
- 10
|
75
|
+
"""
|
76
|
+
url = "https://github.com/LeonResearch/City-Networks/raw/refs/heads/main/data/" # noqa: E501
|
77
|
+
|
78
|
+
def __init__(
|
79
|
+
self,
|
80
|
+
root: str,
|
81
|
+
name: str,
|
82
|
+
augmented: bool = True,
|
83
|
+
transform: Optional[Callable] = None,
|
84
|
+
pre_transform: Optional[Callable] = None,
|
85
|
+
force_reload: bool = False,
|
86
|
+
delete_raw: bool = False,
|
87
|
+
) -> None:
|
88
|
+
self.name = name.lower()
|
89
|
+
assert self.name in ["paris", "shanghai", "la", "london"]
|
90
|
+
self.augmented = augmented
|
91
|
+
self.delete_raw = delete_raw
|
92
|
+
super().__init__(
|
93
|
+
root,
|
94
|
+
transform,
|
95
|
+
pre_transform,
|
96
|
+
force_reload=force_reload,
|
97
|
+
)
|
98
|
+
self.load(self.processed_paths[0])
|
99
|
+
|
100
|
+
@property
|
101
|
+
def raw_dir(self) -> str:
|
102
|
+
return osp.join(self.root, self.name, "raw")
|
103
|
+
|
104
|
+
@property
|
105
|
+
def processed_dir(self) -> str:
|
106
|
+
return osp.join(self.root, self.name, "processed")
|
107
|
+
|
108
|
+
@property
|
109
|
+
def raw_file_names(self) -> str:
|
110
|
+
return f"{self.name}.json"
|
111
|
+
|
112
|
+
@property
|
113
|
+
def processed_file_names(self) -> str:
|
114
|
+
return "data.pt"
|
115
|
+
|
116
|
+
def download(self) -> None:
|
117
|
+
self.download_path = download_url(
|
118
|
+
self.url + f"{self.name}.tar.gz",
|
119
|
+
self.raw_dir,
|
120
|
+
)
|
121
|
+
|
122
|
+
def process(self) -> None:
|
123
|
+
extract_tar(self.download_path, self.raw_dir)
|
124
|
+
data_path = osp.join(self.raw_dir, self.name)
|
125
|
+
node_feat = fs.torch_load(
|
126
|
+
osp.join(
|
127
|
+
data_path,
|
128
|
+
f"node_features{'_augmented' if self.augmented else ''}.pt",
|
129
|
+
))
|
130
|
+
edge_index = fs.torch_load(osp.join(data_path, "edge_indices.pt"))
|
131
|
+
label = fs.torch_load(
|
132
|
+
osp.join(data_path, "10-chunk_16-hop_node_labels.pt"))
|
133
|
+
train_mask = fs.torch_load(osp.join(data_path, "train_mask.pt"))
|
134
|
+
val_mask = fs.torch_load(osp.join(data_path, "valid_mask.pt"))
|
135
|
+
test_mask = fs.torch_load(osp.join(data_path, "test_mask.pt"))
|
136
|
+
data = Data(
|
137
|
+
x=node_feat,
|
138
|
+
edge_index=edge_index,
|
139
|
+
y=label,
|
140
|
+
train_mask=train_mask,
|
141
|
+
val_mask=val_mask,
|
142
|
+
test_mask=test_mask,
|
143
|
+
)
|
144
|
+
if self.pre_transform is not None:
|
145
|
+
data = self.pre_transform(data)
|
146
|
+
|
147
|
+
self.save([data], self.processed_paths[0])
|
148
|
+
|
149
|
+
if self.delete_raw:
|
150
|
+
fs.rm(data_path)
|
151
|
+
|
152
|
+
def __repr__(self) -> str:
|
153
|
+
return (f"{self.__class__.__name__}("
|
154
|
+
f"root='{self.root}', "
|
155
|
+
f"name='{self.name}', "
|
156
|
+
f"augmented={self.augmented})")
|
@@ -138,9 +138,9 @@ class DistLoader:
|
|
138
138
|
# close RPC & worker group at exit:
|
139
139
|
atexit.register(shutdown_rpc, self.current_ctx_worker.worker_name)
|
140
140
|
|
141
|
-
except RuntimeError:
|
141
|
+
except RuntimeError as e:
|
142
142
|
raise RuntimeError(f"`{self}.init_fn()` could not initialize the "
|
143
|
-
f"worker loop of the neighbor sampler")
|
143
|
+
f"worker loop of the neighbor sampler") from e
|
144
144
|
|
145
145
|
def __repr__(self) -> str:
|
146
146
|
return f'{self.__class__.__name__}(pid={self.pid})'
|
@@ -166,7 +166,7 @@ class ExplainerAlgorithm(torch.nn.Module):
|
|
166
166
|
elif self.model_config.return_type == ModelReturnType.probs:
|
167
167
|
loss_fn = F.binary_cross_entropy
|
168
168
|
else:
|
169
|
-
|
169
|
+
raise AssertionError()
|
170
170
|
|
171
171
|
return loss_fn(y_hat.view_as(y), y.float())
|
172
172
|
|
@@ -183,7 +183,7 @@ class ExplainerAlgorithm(torch.nn.Module):
|
|
183
183
|
elif self.model_config.return_type == ModelReturnType.log_probs:
|
184
184
|
loss_fn = F.nll_loss
|
185
185
|
else:
|
186
|
-
|
186
|
+
raise AssertionError()
|
187
187
|
|
188
188
|
return loss_fn(y_hat, y)
|
189
189
|
|
@@ -274,7 +274,7 @@ class GraphMaskExplainer(ExplainerAlgorithm):
|
|
274
274
|
elif self.model_config.mode == ModelMode.regression:
|
275
275
|
loss = self._loss_regression(y_hat, y)
|
276
276
|
else:
|
277
|
-
|
277
|
+
raise AssertionError()
|
278
278
|
|
279
279
|
g = torch.relu(loss - self.allowance).mean()
|
280
280
|
f = penalty * self.penalty_scaling
|
@@ -265,7 +265,7 @@ class Explainer:
|
|
265
265
|
return (prediction > 0).long().view(-1)
|
266
266
|
if self.model_config.return_type == ModelReturnType.probs:
|
267
267
|
return (prediction > 0.5).long().view(-1)
|
268
|
-
|
268
|
+
raise AssertionError()
|
269
269
|
|
270
270
|
if self.model_config.mode == ModelMode.multiclass_classification:
|
271
271
|
return prediction.argmax(dim=-1)
|
torch_geometric/loader/mixin.py
CHANGED
@@ -106,9 +106,9 @@ class MultithreadingMixin:
|
|
106
106
|
def _mt_init_fn(self, worker_id: int) -> None:
|
107
107
|
try:
|
108
108
|
torch.set_num_threads(int(self._worker_threads))
|
109
|
-
except IndexError:
|
109
|
+
except IndexError as e:
|
110
110
|
raise ValueError(f"Cannot set {self.worker_threads} threads "
|
111
|
-
f"in worker {worker_id}")
|
111
|
+
f"in worker {worker_id}") from e
|
112
112
|
|
113
113
|
# Chain worker init functions:
|
114
114
|
self._old_worker_init_fn(worker_id)
|
@@ -213,9 +213,9 @@ class AffinityMixin:
|
|
213
213
|
|
214
214
|
psutil.Process().cpu_affinity(worker_cores)
|
215
215
|
|
216
|
-
except IndexError:
|
216
|
+
except IndexError as e:
|
217
217
|
raise ValueError(f"Cannot use CPU affinity for worker ID "
|
218
|
-
f"{worker_id} on CPU {self.loader_cores}")
|
218
|
+
f"{worker_id} on CPU {self.loader_cores}") from e
|
219
219
|
|
220
220
|
# Chain worker init functions:
|
221
221
|
self._old_worker_init_fn(worker_id)
|
torch_geometric/nn/aggr/base.py
CHANGED
@@ -135,7 +135,7 @@ class Aggregation(torch.nn.Module):
|
|
135
135
|
if index.numel() > 0 and dim_size <= int(index.max()):
|
136
136
|
raise ValueError(f"Encountered invalid 'dim_size' (got "
|
137
137
|
f"'{dim_size}' but expected "
|
138
|
-
f">= '{int(index.max()) + 1}')")
|
138
|
+
f">= '{int(index.max()) + 1}')") from e
|
139
139
|
raise e
|
140
140
|
|
141
141
|
def __repr__(self) -> str:
|
@@ -276,7 +276,7 @@ class MessagePassing(torch.nn.Module):
|
|
276
276
|
f"{index.min().item()}). Please ensure that all "
|
277
277
|
f"indices in 'edge_index' point to valid indices "
|
278
278
|
f"in the interval [0, {src.size(self.node_dim)}) in "
|
279
|
-
f"your node feature matrix and try again.")
|
279
|
+
f"your node feature matrix and try again.") from e
|
280
280
|
|
281
281
|
if (index.numel() > 0 and index.max() >= src.size(self.node_dim)):
|
282
282
|
raise IndexError(
|
@@ -285,7 +285,7 @@ class MessagePassing(torch.nn.Module):
|
|
285
285
|
f"{index.max().item()}). Please ensure that all "
|
286
286
|
f"indices in 'edge_index' point to valid indices "
|
287
287
|
f"in the interval [0, {src.size(self.node_dim)}) in "
|
288
|
-
f"your node feature matrix and try again.")
|
288
|
+
f"your node feature matrix and try again.") from e
|
289
289
|
|
290
290
|
raise e
|
291
291
|
|
torch_geometric/sampler/base.py
CHANGED
@@ -279,6 +279,7 @@ class NeighborSampler(BaseSampler):
|
|
279
279
|
self.subgraph_type = SubgraphType(subgraph_type)
|
280
280
|
self.disjoint = disjoint
|
281
281
|
self.temporal_strategy = temporal_strategy
|
282
|
+
self.keep_orig_edges = False
|
282
283
|
|
283
284
|
@property
|
284
285
|
def num_neighbors(self) -> NumNeighbors:
|
@@ -321,7 +322,7 @@ class NeighborSampler(BaseSampler):
|
|
321
322
|
) -> Union[SamplerOutput, HeteroSamplerOutput]:
|
322
323
|
out = node_sample(inputs, self._sample)
|
323
324
|
if self.subgraph_type == SubgraphType.bidirectional:
|
324
|
-
out = out.to_bidirectional()
|
325
|
+
out = out.to_bidirectional(keep_orig_edges=self.keep_orig_edges)
|
325
326
|
return out
|
326
327
|
|
327
328
|
# Edge-based sampling #####################################################
|
@@ -334,7 +335,7 @@ class NeighborSampler(BaseSampler):
|
|
334
335
|
out = edge_sample(inputs, self._sample, self.num_nodes, self.disjoint,
|
335
336
|
self.node_time, neg_sampling)
|
336
337
|
if self.subgraph_type == SubgraphType.bidirectional:
|
337
|
-
out = out.to_bidirectional()
|
338
|
+
out = out.to_bidirectional(keep_orig_edges=self.keep_orig_edges)
|
338
339
|
return out
|
339
340
|
|
340
341
|
# Other Utilities #########################################################
|
torch_geometric/typing.py
CHANGED
@@ -70,12 +70,12 @@ try:
|
|
70
70
|
WITH_WEIGHTED_NEIGHBOR_SAMPLE = ('edge_weight' in inspect.signature(
|
71
71
|
pyg_lib.sampler.neighbor_sample).parameters)
|
72
72
|
try:
|
73
|
-
torch.classes.pyg.CPUHashMap
|
73
|
+
torch.classes.pyg.CPUHashMap # noqa: B018
|
74
74
|
WITH_CPU_HASH_MAP = True
|
75
75
|
except Exception:
|
76
76
|
WITH_CPU_HASH_MAP = False
|
77
77
|
try:
|
78
|
-
torch.classes.pyg.CUDAHashMap
|
78
|
+
torch.classes.pyg.CUDAHashMap # noqa: B018
|
79
79
|
WITH_CUDA_HASH_MAP = True
|
80
80
|
except Exception:
|
81
81
|
WITH_CUDA_HASH_MAP = False
|
torch_geometric/utils/map.py
CHANGED
@@ -148,10 +148,11 @@ def map_index(
|
|
148
148
|
if inclusive:
|
149
149
|
try:
|
150
150
|
out = from_dlpack(result['right_ser'].to_dlpack())
|
151
|
-
except ValueError:
|
152
|
-
raise ValueError(
|
153
|
-
|
154
|
-
|
151
|
+
except ValueError as e:
|
152
|
+
raise ValueError(
|
153
|
+
"Found invalid entries in 'src' that do not "
|
154
|
+
"have a corresponding entry in 'index'. Set "
|
155
|
+
"`inclusive=False` to ignore these entries.") from e
|
155
156
|
else:
|
156
157
|
out = from_dlpack(result['right_ser'].fillna(-1).to_dlpack())
|
157
158
|
|
File without changes
|
{pyg_nightly-2.7.0.dev20250501.dist-info → pyg_nightly-2.7.0.dev20250503.dist-info}/licenses/LICENSE
RENAMED
File without changes
|