pyg-nightly 2.7.0.dev20250826__py3-none-any.whl → 2.7.0.dev20250827__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.dev20250826.dist-info → pyg_nightly-2.7.0.dev20250827.dist-info}/METADATA +1 -1
- {pyg_nightly-2.7.0.dev20250826.dist-info → pyg_nightly-2.7.0.dev20250827.dist-info}/RECORD +13 -12
- torch_geometric/__init__.py +3 -2
- torch_geometric/_onnx.py +214 -0
- torch_geometric/loader/link_neighbor_loader.py +1 -0
- torch_geometric/nn/models/__init__.py +3 -0
- torch_geometric/nn/models/lpformer.py +783 -0
- torch_geometric/sampler/__init__.py +2 -1
- torch_geometric/sampler/base.py +258 -3
- torch_geometric/sampler/neighbor_sampler.py +283 -13
- torch_geometric/sampler/utils.py +48 -5
- {pyg_nightly-2.7.0.dev20250826.dist-info → pyg_nightly-2.7.0.dev20250827.dist-info}/WHEEL +0 -0
- {pyg_nightly-2.7.0.dev20250826.dist-info → pyg_nightly-2.7.0.dev20250827.dist-info}/licenses/LICENSE +0 -0
{pyg_nightly-2.7.0.dev20250826.dist-info → pyg_nightly-2.7.0.dev20250827.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.dev20250827
|
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,6 +1,6 @@
|
|
1
|
-
torch_geometric/__init__.py,sha256=
|
1
|
+
torch_geometric/__init__.py,sha256=zrScFs8nlSfWgDBBpXpfkFiUoXxIN10YeQdNHNX4kIw,2292
|
2
2
|
torch_geometric/_compile.py,sha256=9yqMTBKatZPr40WavJz9FjNi7pQj8YZAZOyZmmRGXgc,1351
|
3
|
-
torch_geometric/_onnx.py,sha256=
|
3
|
+
torch_geometric/_onnx.py,sha256=ODB_8cwFUiwBUjngXn6-K5HHb7IDul7DDXuuGX7vj_0,8178
|
4
4
|
torch_geometric/backend.py,sha256=lVaf7aLoVaB3M-UcByUJ1G4T4FOK6LXAg0CF4W3E8jo,1575
|
5
5
|
torch_geometric/config_mixin.py,sha256=hOTJu5LLVrEAZ6Pjt4ScLDLKv9aHbfAzF_3ufwKgO4I,4301
|
6
6
|
torch_geometric/config_store.py,sha256=zdMzlgBpUmBkPovpYQh5fMNwTZLDq2OneqX47QEx7zk,16818
|
@@ -281,7 +281,7 @@ torch_geometric/loader/hgt_loader.py,sha256=1gjYFzn3rU4BlAozRWI0eefUfmi5XC5y6YXq
|
|
281
281
|
torch_geometric/loader/ibmb_loader.py,sha256=6OAP_R1tK1Le5MCBYqtZPD0RFsDhfIXDnhgjmlXTAzw,31444
|
282
282
|
torch_geometric/loader/imbalanced_sampler.py,sha256=clPERglHRk5SyeFevDrgezYFl7ir975OVFMyJwOV090,3754
|
283
283
|
torch_geometric/loader/link_loader.py,sha256=XIYgwo5do_70r-wKQLTKTpET85DMCrEeC3fuKH5xOVQ,16208
|
284
|
-
torch_geometric/loader/link_neighbor_loader.py,sha256=
|
284
|
+
torch_geometric/loader/link_neighbor_loader.py,sha256=0KjvWNYeGyrLOrpqITat6WF925zw6BO08T6CAkJhw58,14464
|
285
285
|
torch_geometric/loader/mixin.py,sha256=_2sHZt3rkuWR2iqFMxnz4G9oscR2bt5q7y1hZahlOqY,10976
|
286
286
|
torch_geometric/loader/neighbor_loader.py,sha256=vnLn_RhBKTux5h8pi0vzj0d7JPoOpLA3n3vjyIWv9lo,12452
|
287
287
|
torch_geometric/loader/neighbor_sampler.py,sha256=mraVFXIIGctYot4Xr2VOAhCKAOQyW2gP9KROf7g6tcc,8497
|
@@ -432,7 +432,7 @@ torch_geometric/nn/kge/distmult.py,sha256=dGQ0bVzjreZgFN1lXE23_IIidsiOq7ehPrMb-N
|
|
432
432
|
torch_geometric/nn/kge/loader.py,sha256=5Uc1j3OUMQnBYSHDqL7pLCty1siFLzoPkztigYO2zP8,771
|
433
433
|
torch_geometric/nn/kge/rotate.py,sha256=XLuO1AbyTt5cJxr97ZzoyAyIEsHKesgW5TvDmnGJAao,3208
|
434
434
|
torch_geometric/nn/kge/transe.py,sha256=jlejq5BLMm-sb1wWcLDp7pZqCdelWBgjDIC8ctbjSdU,3088
|
435
|
-
torch_geometric/nn/models/__init__.py,sha256=
|
435
|
+
torch_geometric/nn/models/__init__.py,sha256=2INurndMehxviZcdD7REV7qnIaLJ9AXdnNvcwqa00HM,2496
|
436
436
|
torch_geometric/nn/models/attentive_fp.py,sha256=1z3iTV2O5W9tqHFAdno8FeBFeXmuG-TDZk4lwwVh3Ac,6634
|
437
437
|
torch_geometric/nn/models/attract_repel.py,sha256=h9OyogT0NY0xiT0DkpJHMxH6ZUmo8R-CmwZdKEwq8Ek,5277
|
438
438
|
torch_geometric/nn/models/autoencoder.py,sha256=nGje-zty78Y3hxOJ9o0_6QziJjOvBlknk6z0_fDQwQU,10770
|
@@ -454,6 +454,7 @@ torch_geometric/nn/models/jumping_knowledge.py,sha256=9JR2EoViXKjcDSLb8tjJm-UHfv
|
|
454
454
|
torch_geometric/nn/models/label_prop.py,sha256=6XYBKp7OLmUgcn-73jXXpYZpef9Za1m0gI9QLv2bMEw,3908
|
455
455
|
torch_geometric/nn/models/lightgcn.py,sha256=dXKiBvM96jGKLtYp4l90Fko4he0kKdR9fRw-0ZCqSrA,12466
|
456
456
|
torch_geometric/nn/models/linkx.py,sha256=BOWGdJ7rJxk4P0XrIy316vyw8PZabbUAK2XKbwYPMQw,5812
|
457
|
+
torch_geometric/nn/models/lpformer.py,sha256=XjXr-w-QlMl_2ioBGWA1ph2tgt4xrl3umT4zXNpB-Ks,29706
|
457
458
|
torch_geometric/nn/models/mask_label.py,sha256=B2HcL6ZkaUEo3a8nebZoUqEIfDEfcIGOV56sEmNgOxQ,2580
|
458
459
|
torch_geometric/nn/models/meta.py,sha256=lQWovjdQgTGT_rDAm6L186ObINeQCD9tLBz8xenmrF0,6540
|
459
460
|
torch_geometric/nn/models/metapath2vec.py,sha256=jwpEwVUnt9uWcriVfyX1BVCzXOqKpnDVsPQSxJAGoBQ,10788
|
@@ -518,11 +519,11 @@ torch_geometric/profile/nvtx.py,sha256=AKBr-rqlHDnls_UM02Dfq5BZmyFTHS5Li5gaeKmsA
|
|
518
519
|
torch_geometric/profile/profile.py,sha256=cHCY4U0XtyqyKC5u380q6TspsOZ5tGHNXaZsKuzYi1A,11793
|
519
520
|
torch_geometric/profile/profiler.py,sha256=rfNciRzWDka_BgO6aPFi3cy8mcT4lSgFWy-WfPgI2SI,16891
|
520
521
|
torch_geometric/profile/utils.py,sha256=ynlUVemNJZ6XjJKIkPJNwFPoUyBgVAnchfHBpKOp_HE,5903
|
521
|
-
torch_geometric/sampler/__init__.py,sha256=
|
522
|
-
torch_geometric/sampler/base.py,sha256=
|
522
|
+
torch_geometric/sampler/__init__.py,sha256=NsAvP6S9wfR0Dsc1d5tR7fj5owRlARRUj3RuUeh8ydg,578
|
523
|
+
torch_geometric/sampler/base.py,sha256=GifHECotqBrD82yeqFHuW67MyTB7djN3ejHEkqR3GNI,41187
|
523
524
|
torch_geometric/sampler/hgt_sampler.py,sha256=jizRJyEoz4WBOEELuqdytG2hB3UpVQX7yVPM83kvpfE,2991
|
524
|
-
torch_geometric/sampler/neighbor_sampler.py,sha256=
|
525
|
-
torch_geometric/sampler/utils.py,sha256=
|
525
|
+
torch_geometric/sampler/neighbor_sampler.py,sha256=hH8mSbdlq5J9ijFrO_qlkY-1hodhUzaxyFnx_BsEkGQ,45450
|
526
|
+
torch_geometric/sampler/utils.py,sha256=vZU--z8OELmV1pqnUA2Xn56HmAt4eUD8R4m8izJGfxk,8571
|
526
527
|
torch_geometric/testing/__init__.py,sha256=m3yp_5UnCAxVgzTFofpiVt0vdbl5GwVAve8WTrAaNxo,1319
|
527
528
|
torch_geometric/testing/asserts.py,sha256=DLC9HnBgFWuTIiQs2OalsQcXGhOVG-e6R99IWhkO32c,4606
|
528
529
|
torch_geometric/testing/data.py,sha256=O1qo8FyNxt6RGf63Ys3eXBfa5RvYydeZLk74szrez3c,2604
|
@@ -645,7 +646,7 @@ torch_geometric/utils/undirected.py,sha256=H_nfpI0_WluOG6VfjPyldvcjL4w5USAKWu2x5
|
|
645
646
|
torch_geometric/visualization/__init__.py,sha256=b-HnVesXjyJ_L1N-DnjiRiRVf7lhwKaBQF_2i5YMVSU,208
|
646
647
|
torch_geometric/visualization/graph.py,sha256=mfZHXYfiU-CWMtfawYc80IxVwVmtK9hbIkSKhM_j7oI,14311
|
647
648
|
torch_geometric/visualization/influence.py,sha256=CWMvuNA_Nf1sfbJmQgn58yS4OFpeKXeZPe7kEuvkUBw,477
|
648
|
-
pyg_nightly-2.7.0.
|
649
|
-
pyg_nightly-2.7.0.
|
650
|
-
pyg_nightly-2.7.0.
|
651
|
-
pyg_nightly-2.7.0.
|
649
|
+
pyg_nightly-2.7.0.dev20250827.dist-info/licenses/LICENSE,sha256=ic-27cMJc1kWoMEYncz3Ya3Ur2Bi3bNLWib2DT763-o,1067
|
650
|
+
pyg_nightly-2.7.0.dev20250827.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
651
|
+
pyg_nightly-2.7.0.dev20250827.dist-info/METADATA,sha256=v9ks0RFVcvThZaDFy2GCqnuXZGHqkd3DJD2w4UQpCFU,64100
|
652
|
+
pyg_nightly-2.7.0.dev20250827.dist-info/RECORD,,
|
torch_geometric/__init__.py
CHANGED
@@ -4,7 +4,7 @@ import torch
|
|
4
4
|
import torch_geometric.typing
|
5
5
|
|
6
6
|
from ._compile import compile, is_compiling
|
7
|
-
from ._onnx import is_in_onnx_export
|
7
|
+
from ._onnx import is_in_onnx_export, safe_onnx_export
|
8
8
|
from .index import Index
|
9
9
|
from .edge_index import EdgeIndex
|
10
10
|
from .hash_tensor import HashTensor
|
@@ -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.dev20250827'
|
35
35
|
|
36
36
|
__all__ = [
|
37
37
|
'Index',
|
@@ -43,6 +43,7 @@ __all__ = [
|
|
43
43
|
'compile',
|
44
44
|
'is_compiling',
|
45
45
|
'is_in_onnx_export',
|
46
|
+
'safe_onnx_export',
|
46
47
|
'is_mps_available',
|
47
48
|
'is_xpu_available',
|
48
49
|
'device',
|
torch_geometric/_onnx.py
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
import warnings
|
2
|
+
from os import PathLike
|
3
|
+
from typing import Any, Union
|
4
|
+
|
1
5
|
import torch
|
2
6
|
|
3
7
|
from torch_geometric import is_compiling
|
@@ -12,3 +16,213 @@ def is_in_onnx_export() -> bool:
|
|
12
16
|
if torch.jit.is_scripting():
|
13
17
|
return False
|
14
18
|
return torch.onnx.is_in_onnx_export()
|
19
|
+
|
20
|
+
|
21
|
+
def safe_onnx_export(
|
22
|
+
model: torch.nn.Module,
|
23
|
+
args: Union[torch.Tensor, tuple[Any, ...]],
|
24
|
+
f: Union[str, PathLike[Any], None],
|
25
|
+
skip_on_error: bool = False,
|
26
|
+
**kwargs: Any,
|
27
|
+
) -> bool:
|
28
|
+
r"""A safe wrapper around :meth:`torch.onnx.export` that handles known
|
29
|
+
ONNX serialization issues in PyTorch Geometric.
|
30
|
+
|
31
|
+
This function provides workarounds for the ``onnx_ir.serde.SerdeError``
|
32
|
+
with boolean ``allowzero`` attributes that occurs in certain environments.
|
33
|
+
|
34
|
+
Args:
|
35
|
+
model (torch.nn.Module): The model to export.
|
36
|
+
args (torch.Tensor or tuple): The input arguments for the model.
|
37
|
+
f (str or PathLike): The file path to save the model.
|
38
|
+
skip_on_error (bool): If True, return False instead of raising when
|
39
|
+
workarounds fail. Useful for CI environments.
|
40
|
+
**kwargs: Additional arguments passed to :meth:`torch.onnx.export`.
|
41
|
+
|
42
|
+
Returns:
|
43
|
+
bool: True if export succeeded, False if skipped due to known issues
|
44
|
+
(only when skip_on_error=True).
|
45
|
+
|
46
|
+
Example:
|
47
|
+
>>> from torch_geometric.nn import SAGEConv
|
48
|
+
>>> from torch_geometric import safe_onnx_export
|
49
|
+
>>>
|
50
|
+
>>> class MyModel(torch.nn.Module):
|
51
|
+
... def __init__(self):
|
52
|
+
... super().__init__()
|
53
|
+
... self.conv = SAGEConv(8, 16)
|
54
|
+
... def forward(self, x, edge_index):
|
55
|
+
... return self.conv(x, edge_index)
|
56
|
+
>>>
|
57
|
+
>>> model = MyModel()
|
58
|
+
>>> x = torch.randn(3, 8)
|
59
|
+
>>> edge_index = torch.tensor([[0, 1, 2], [1, 0, 2]])
|
60
|
+
>>> success = safe_onnx_export(model, (x, edge_index), 'model.onnx')
|
61
|
+
>>>
|
62
|
+
>>> # For CI environments:
|
63
|
+
>>> success = safe_onnx_export(model, (x, edge_index), 'model.onnx',
|
64
|
+
... skip_on_error=True)
|
65
|
+
>>> if not success:
|
66
|
+
... print("ONNX export skipped due to known upstream issue")
|
67
|
+
"""
|
68
|
+
# Convert single tensor to tuple for torch.onnx.export compatibility
|
69
|
+
if isinstance(args, torch.Tensor):
|
70
|
+
args = (args, )
|
71
|
+
|
72
|
+
try:
|
73
|
+
# First attempt: standard ONNX export
|
74
|
+
torch.onnx.export(model, args, f, **kwargs)
|
75
|
+
return True
|
76
|
+
|
77
|
+
except Exception as e:
|
78
|
+
error_str = str(e)
|
79
|
+
error_type = type(e).__name__
|
80
|
+
|
81
|
+
# Check for the specific onnx_ir.serde.SerdeError patterns
|
82
|
+
is_allowzero_error = (('onnx_ir.serde.SerdeError' in error_str
|
83
|
+
and 'allowzero' in error_str) or
|
84
|
+
'ValueError: Value out of range: 1' in error_str
|
85
|
+
or 'serialize_model_into' in error_str
|
86
|
+
or 'serialize_attribute_into' in error_str)
|
87
|
+
|
88
|
+
if is_allowzero_error:
|
89
|
+
warnings.warn(
|
90
|
+
f"Encountered known ONNX serialization issue ({error_type}). "
|
91
|
+
"This is likely the allowzero boolean attribute bug. "
|
92
|
+
"Attempting workaround...", UserWarning, stacklevel=2)
|
93
|
+
|
94
|
+
# Apply workaround strategies
|
95
|
+
return _apply_onnx_allowzero_workaround(model, args, f,
|
96
|
+
skip_on_error, **kwargs)
|
97
|
+
|
98
|
+
else:
|
99
|
+
# Re-raise other errors
|
100
|
+
raise
|
101
|
+
|
102
|
+
|
103
|
+
def _apply_onnx_allowzero_workaround(
|
104
|
+
model: torch.nn.Module,
|
105
|
+
args: tuple[Any, ...],
|
106
|
+
f: Union[str, PathLike[Any], None],
|
107
|
+
skip_on_error: bool = False,
|
108
|
+
**kwargs: Any,
|
109
|
+
) -> bool:
|
110
|
+
r"""Apply workaround strategies for onnx_ir.serde.SerdeError with allowzero
|
111
|
+
attributes.
|
112
|
+
|
113
|
+
Returns:
|
114
|
+
bool: True if export succeeded, False if skipped (when
|
115
|
+
skip_on_error=True).
|
116
|
+
"""
|
117
|
+
# Strategy 1: Try without dynamo if it was enabled
|
118
|
+
if kwargs.get('dynamo', False):
|
119
|
+
try:
|
120
|
+
kwargs_no_dynamo = kwargs.copy()
|
121
|
+
kwargs_no_dynamo['dynamo'] = False
|
122
|
+
|
123
|
+
warnings.warn(
|
124
|
+
"Retrying ONNX export with dynamo=False as workaround",
|
125
|
+
UserWarning, stacklevel=3)
|
126
|
+
|
127
|
+
torch.onnx.export(model, args, f, **kwargs_no_dynamo)
|
128
|
+
return True
|
129
|
+
|
130
|
+
except Exception:
|
131
|
+
pass
|
132
|
+
|
133
|
+
# Strategy 2: Try with different opset versions
|
134
|
+
original_opset = kwargs.get('opset_version', 18)
|
135
|
+
for opset_version in [17, 16, 15, 14, 13, 11]:
|
136
|
+
if opset_version != original_opset:
|
137
|
+
try:
|
138
|
+
kwargs_opset = kwargs.copy()
|
139
|
+
kwargs_opset['opset_version'] = opset_version
|
140
|
+
|
141
|
+
warnings.warn(
|
142
|
+
f"Retrying ONNX export with opset_version={opset_version}",
|
143
|
+
UserWarning, stacklevel=3)
|
144
|
+
|
145
|
+
torch.onnx.export(model, args, f, **kwargs_opset)
|
146
|
+
return True
|
147
|
+
|
148
|
+
except Exception:
|
149
|
+
continue
|
150
|
+
|
151
|
+
# Strategy 3: Try legacy export (non-dynamo with older opset)
|
152
|
+
try:
|
153
|
+
kwargs_legacy = kwargs.copy()
|
154
|
+
kwargs_legacy['dynamo'] = False
|
155
|
+
kwargs_legacy['opset_version'] = 11
|
156
|
+
|
157
|
+
warnings.warn(
|
158
|
+
"Retrying ONNX export with legacy settings "
|
159
|
+
"(dynamo=False, opset_version=11)", UserWarning, stacklevel=3)
|
160
|
+
|
161
|
+
torch.onnx.export(model, args, f, **kwargs_legacy)
|
162
|
+
return True
|
163
|
+
|
164
|
+
except Exception:
|
165
|
+
pass
|
166
|
+
|
167
|
+
# Strategy 4: Try with minimal settings
|
168
|
+
try:
|
169
|
+
minimal_kwargs: dict[str, Any] = {
|
170
|
+
'opset_version': 11,
|
171
|
+
'dynamo': False,
|
172
|
+
}
|
173
|
+
# Add optional parameters if they exist
|
174
|
+
if kwargs.get('input_names') is not None:
|
175
|
+
minimal_kwargs['input_names'] = kwargs.get('input_names')
|
176
|
+
if kwargs.get('output_names') is not None:
|
177
|
+
minimal_kwargs['output_names'] = kwargs.get('output_names')
|
178
|
+
|
179
|
+
warnings.warn(
|
180
|
+
"Retrying ONNX export with minimal settings as last resort",
|
181
|
+
UserWarning, stacklevel=3)
|
182
|
+
|
183
|
+
torch.onnx.export(model, args, f, **minimal_kwargs)
|
184
|
+
return True
|
185
|
+
|
186
|
+
except Exception:
|
187
|
+
pass
|
188
|
+
|
189
|
+
# If all strategies fail, handle based on skip_on_error flag
|
190
|
+
import os
|
191
|
+
pytest_detected = 'PYTEST_CURRENT_TEST' in os.environ or 'pytest' in str(f)
|
192
|
+
|
193
|
+
if skip_on_error:
|
194
|
+
# For CI environments: skip gracefully instead of failing
|
195
|
+
warnings.warn(
|
196
|
+
"ONNX export skipped due to known upstream issue "
|
197
|
+
"(onnx_ir.serde.SerdeError). "
|
198
|
+
"This is caused by a bug in the onnx_ir package where boolean "
|
199
|
+
"allowzero attributes cannot be serialized. All workarounds "
|
200
|
+
"failed. Consider updating packages: pip install --upgrade onnx "
|
201
|
+
"onnxscript "
|
202
|
+
"onnx_ir", UserWarning, stacklevel=3)
|
203
|
+
return False
|
204
|
+
|
205
|
+
# For regular usage: provide detailed error message
|
206
|
+
error_msg = (
|
207
|
+
"Failed to export model to ONNX due to known serialization issue. "
|
208
|
+
"This is caused by a bug in the onnx_ir package where boolean "
|
209
|
+
"allowzero attributes cannot be serialized. "
|
210
|
+
"Workarounds attempted: dynamo=False, multiple opset versions, "
|
211
|
+
"and legacy export. ")
|
212
|
+
|
213
|
+
if pytest_detected:
|
214
|
+
error_msg += (
|
215
|
+
"\n\nThis error commonly occurs in pytest environments. "
|
216
|
+
"Try one of these solutions:\n"
|
217
|
+
"1. Run the export outside of pytest (in a regular Python "
|
218
|
+
"script)\n"
|
219
|
+
"2. Update packages: pip install --upgrade onnx onnxscript "
|
220
|
+
"onnx_ir\n"
|
221
|
+
"3. Use torch.jit.script() instead of ONNX export for testing\n"
|
222
|
+
"4. Use safe_onnx_export(..., skip_on_error=True) to skip "
|
223
|
+
"gracefully in CI")
|
224
|
+
else:
|
225
|
+
error_msg += ("\n\nTry updating packages: pip install --upgrade onnx "
|
226
|
+
"onnxscript onnx_ir")
|
227
|
+
|
228
|
+
raise RuntimeError(error_msg)
|
@@ -170,6 +170,7 @@ class LinkNeighborLoader(LinkLoader):
|
|
170
170
|
negative sampling mode.
|
171
171
|
If set to :obj:`None`, no negative sampling strategy is applied.
|
172
172
|
(default: :obj:`None`)
|
173
|
+
For example use obj:`neg_sampling=dict(mode= 'binary', amount=0.5)`
|
173
174
|
neg_sampling_ratio (int or float, optional): The ratio of sampled
|
174
175
|
negative edges to the number of positive edges.
|
175
176
|
Deprecated in favor of the :obj:`neg_sampling` argument.
|
@@ -34,7 +34,9 @@ from .git_mol import GITMol
|
|
34
34
|
from .molecule_gpt import MoleculeGPT
|
35
35
|
from .protein_mpnn import ProteinMPNN
|
36
36
|
from .glem import GLEM
|
37
|
+
from .lpformer import LPFormer
|
37
38
|
from .sgformer import SGFormer
|
39
|
+
|
38
40
|
from .polynormer import Polynormer
|
39
41
|
# Deprecated:
|
40
42
|
from torch_geometric.explain.algorithm.captum import (to_captum_input,
|
@@ -90,6 +92,7 @@ __all__ = classes = [
|
|
90
92
|
'MoleculeGPT',
|
91
93
|
'ProteinMPNN',
|
92
94
|
'GLEM',
|
95
|
+
'LPFormer',
|
93
96
|
'SGFormer',
|
94
97
|
'Polynormer',
|
95
98
|
'ARLinkPredictor',
|