Spaces:
Sleeping
Sleeping
File size: 1,299 Bytes
5266d4e d10727d 5266d4e d10727d 5266d4e d10727d 5266d4e d10727d 5266d4e d10727d 5266d4e d10727d 5266d4e d10727d 5266d4e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | # =========================
# 🔥 SAFE GNN (NO CRASH)
# =========================
def run_gnn(nodes, edges):
try:
import torch
from torch_geometric.nn import GCNConv
from torch_geometric.data import Data
if len(nodes) == 0 or len(edges) == 0:
return []
edge_index = []
for e in edges:
edge_index.append([e["source"], e["target"]])
edge_index = torch.tensor(edge_index).t().contiguous()
x = torch.rand((len(nodes), 16))
class GNN(torch.nn.Module):
def __init__(self):
super().__init__()
self.conv1 = GCNConv(16, 16)
self.conv2 = GCNConv(16, 2)
def forward(self, x, edge_index):
x = self.conv1(x, edge_index)
x = torch.relu(x)
x = self.conv2(x, edge_index)
return x
model = GNN()
out = model(x, edge_index)
return [
{"node": i, "score": float(out[i][0])}
for i in range(len(nodes))
]
except Exception as e:
print("⚠️ GNN fallback aktif:", e)
# 🔥 fallback TANPA torch
return [
{"node": i, "score": 0.5}
for i in range(len(nodes))
] |