Код: Выделить всё
num_of_nodes = 14
num_of_feats = 14
output_dim = 32
adj = np.random.randint(0,2,[num_of_nodes,num_of_nodes])
node_feats = np.random.uniform(-1,1,[num_of_nodes, num_of_feats])
Я конвертирую данные сначала в формат networkx, а затем в формат pyg.
Код: Выделить всё
from torch_geometric.utils.convert import from_networkx
import numpy as np
import networkx as nx
num_of_nodes = 14
num_of_feats = 14
output_dim = 32
def numpy_to_graph(A, node_features=None):
G = nx.from_numpy_array(A)
if node_features != None:
for n in G.nodes():
for k,v in node_features.items():
G.nodes[n][k] = v[n]
return G
def get_data():
adj = np.random.randint(0,2,[num_of_nodes,num_of_nodes])
feats = np.random.uniform(-1,1,[num_of_nodes, num_of_feats])
G = numpy_to_graph(adj, node_features={'x': feats})
pyg_graph = from_networkx(G)
return pyg_graph
Подробнее здесь: https://stackoverflow.com/questions/728 ... ata-object