pyg-nightly 2.7.0.dev20250215__py3-none-any.whl → 2.7.0.dev20250216__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- {pyg_nightly-2.7.0.dev20250215.dist-info → pyg_nightly-2.7.0.dev20250216.dist-info}/METADATA +2 -1
- {pyg_nightly-2.7.0.dev20250215.dist-info → pyg_nightly-2.7.0.dev20250216.dist-info}/RECORD +6 -6
- torch_geometric/__init__.py +1 -1
- torch_geometric/hash_tensor.py +33 -12
- torch_geometric/typing.py +10 -4
- {pyg_nightly-2.7.0.dev20250215.dist-info → pyg_nightly-2.7.0.dev20250216.dist-info}/WHEEL +0 -0
{pyg_nightly-2.7.0.dev20250215.dist-info → pyg_nightly-2.7.0.dev20250216.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: pyg-nightly
|
3
|
-
Version: 2.7.0.
|
3
|
+
Version: 2.7.0.dev20250216
|
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>
|
@@ -22,6 +22,7 @@ Requires-Dist: psutil>=5.8.0
|
|
22
22
|
Requires-Dist: pyparsing
|
23
23
|
Requires-Dist: requests
|
24
24
|
Requires-Dist: tqdm
|
25
|
+
Requires-Dist: xxhash
|
25
26
|
Requires-Dist: matplotlib ; extra == "benchmark"
|
26
27
|
Requires-Dist: networkx ; extra == "benchmark"
|
27
28
|
Requires-Dist: pandas ; extra == "benchmark"
|
@@ -1,4 +1,4 @@
|
|
1
|
-
torch_geometric/__init__.py,sha256=
|
1
|
+
torch_geometric/__init__.py,sha256=QlYg3d7vRWC0k_OzPCmAanyTUBiTvikPuzM9feT0REk,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
|
@@ -9,7 +9,7 @@ torch_geometric/deprecation.py,sha256=dWRymDIUkUVI2MeEmBG5WF4R6jObZeseSBV9G6FNfj
|
|
9
9
|
torch_geometric/device.py,sha256=tU5-_lBNVbVHl_kUmWPwiG5mQ1pyapwMF4JkmtNN3MM,1224
|
10
10
|
torch_geometric/edge_index.py,sha256=BsLh5tOZRjjSYDkjqOFAdBuvMaDg7EWaaLELYsUL0Z8,70048
|
11
11
|
torch_geometric/experimental.py,sha256=JbtNNEXjFGI8hZ9raM6-qrZURP6Z5nlDK8QicZUIbz0,4756
|
12
|
-
torch_geometric/hash_tensor.py,sha256=
|
12
|
+
torch_geometric/hash_tensor.py,sha256=VBuz9n16ouSk2u4DifpCIW5MXiuoH5UGO4rPj-Celjw,4418
|
13
13
|
torch_geometric/home.py,sha256=EV54B4Dmiv61GDbkCwtCfWGWJ4eFGwZ8s3KOgGjwYgY,790
|
14
14
|
torch_geometric/index.py,sha256=9ChzWFCwj2slNcVBOgfV-wQn-KscJe_y7502w-Vf76w,24045
|
15
15
|
torch_geometric/inspector.py,sha256=nKi5o4Mn6xsG0Ex1GudTEQt_EqnF9mcMqGtp7Shh9sQ,19336
|
@@ -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=mtSM6QhCsrohstnyvqMuxEIajCkhcvkQKOU4uVu-nDs,15596
|
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
|
@@ -633,6 +633,6 @@ torch_geometric/utils/undirected.py,sha256=H_nfpI0_WluOG6VfjPyldvcjL4w5USAKWu2x5
|
|
633
633
|
torch_geometric/visualization/__init__.py,sha256=PyR_4K5SafsJrBr6qWrkjKr6GBL1b7FtZybyXCDEVwY,154
|
634
634
|
torch_geometric/visualization/graph.py,sha256=ZuLPL92yGRi7lxlqsUPwL_EVVXF7P2kMcveTtW79vpA,4784
|
635
635
|
torch_geometric/visualization/influence.py,sha256=CWMvuNA_Nf1sfbJmQgn58yS4OFpeKXeZPe7kEuvkUBw,477
|
636
|
-
pyg_nightly-2.7.0.
|
637
|
-
pyg_nightly-2.7.0.
|
638
|
-
pyg_nightly-2.7.0.
|
636
|
+
pyg_nightly-2.7.0.dev20250216.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
|
637
|
+
pyg_nightly-2.7.0.dev20250216.dist-info/METADATA,sha256=nrJ478w_yYVSpIyqlfR5lxdYTu6NOIzCv_atkMY5w5w,62999
|
638
|
+
pyg_nightly-2.7.0.dev20250216.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.dev20250216'
|
35
35
|
|
36
36
|
__all__ = [
|
37
37
|
'Index',
|
torch_geometric/hash_tensor.py
CHANGED
@@ -2,6 +2,7 @@ from typing import Any, Callable, Dict, Iterable, Optional, Tuple, Type, Union
|
|
2
2
|
|
3
3
|
import torch
|
4
4
|
import torch.utils._pytree as pytree
|
5
|
+
import xxhash
|
5
6
|
from torch import Tensor
|
6
7
|
|
7
8
|
from torch_geometric.typing import CPUHashMap, CUDAHashMap
|
@@ -9,6 +10,33 @@ from torch_geometric.typing import CPUHashMap, CUDAHashMap
|
|
9
10
|
HANDLED_FUNCTIONS: Dict[Callable, Callable] = {}
|
10
11
|
|
11
12
|
|
13
|
+
def as_key_tensor(
|
14
|
+
key: Any,
|
15
|
+
*,
|
16
|
+
device: Optional[torch.device] = None,
|
17
|
+
) -> Tensor:
|
18
|
+
try:
|
19
|
+
key = torch.as_tensor(key, device=device)
|
20
|
+
except Exception:
|
21
|
+
key = torch.tensor([
|
22
|
+
xxhash.xxh64(item).intdigest() & 0x7FFFFFFFFFFFFFFF for item in key
|
23
|
+
], dtype=torch.int64, device=device)
|
24
|
+
|
25
|
+
if key.element_size() == 1:
|
26
|
+
key = key.view(torch.uint8)
|
27
|
+
elif key.element_size() == 2:
|
28
|
+
key = key.view(torch.int16)
|
29
|
+
elif key.element_size() == 4:
|
30
|
+
key = key.view(torch.int32)
|
31
|
+
elif key.element_size() == 8:
|
32
|
+
key = key.view(torch.int64)
|
33
|
+
else:
|
34
|
+
raise ValueError(f"Received invalid dtype '{key.dtype}' with "
|
35
|
+
f"{key.element_size()} bytes")
|
36
|
+
|
37
|
+
return key
|
38
|
+
|
39
|
+
|
12
40
|
class HashTensor(Tensor):
|
13
41
|
_map: Union[Tensor, CPUHashMap, CUDAHashMap]
|
14
42
|
_value: Optional[Tensor]
|
@@ -24,18 +52,11 @@ class HashTensor(Tensor):
|
|
24
52
|
) -> 'HashTensor':
|
25
53
|
|
26
54
|
if value is not None:
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
# TODO Add numpy support
|
33
|
-
if not isinstance(key, Tensor):
|
34
|
-
device = value.device if value is not None else device
|
35
|
-
key = torch.tensor(key, device=device)
|
36
|
-
else:
|
37
|
-
key = key.to(device)
|
38
|
-
device = key.device
|
55
|
+
value = torch.as_tensor(value, dtype=dtype, device=device)
|
56
|
+
device = value.device
|
57
|
+
|
58
|
+
key = as_key_tensor(key, device=device)
|
59
|
+
device = key.device
|
39
60
|
|
40
61
|
if key.dim() != 1:
|
41
62
|
raise ValueError(f"'key' data in '{cls.__name__}' needs to be "
|
torch_geometric/typing.py
CHANGED
@@ -69,10 +69,16 @@ try:
|
|
69
69
|
pyg_lib.sampler.neighbor_sample).parameters)
|
70
70
|
WITH_WEIGHTED_NEIGHBOR_SAMPLE = ('edge_weight' in inspect.signature(
|
71
71
|
pyg_lib.sampler.neighbor_sample).parameters)
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
72
|
+
try:
|
73
|
+
torch.classes.pyg.CPUHashMap
|
74
|
+
WITH_CPU_HASH_MAP = True
|
75
|
+
except Exception:
|
76
|
+
WITH_CPU_HASH_MAP = False
|
77
|
+
try:
|
78
|
+
torch.classes.pyg.CUDAHashMap
|
79
|
+
WITH_CUDA_HASH_MAP = True
|
80
|
+
except Exception:
|
81
|
+
WITH_CUDA_HASH_MAP = False
|
76
82
|
except Exception as e:
|
77
83
|
if not isinstance(e, ImportError): # pragma: no cover
|
78
84
|
warnings.warn(f"An issue occurred while importing 'pyg-lib'. "
|
File without changes
|