我正在尝试更改 torch_geometric.data 数据对象元素的属性值,如下所示:
a = train_data[0] # Data(edge_index=[2, 267], y=[1], x=[33, 401], num_nodes=33)
print(train_data[0].num_nodes) # 33
train_data[0].num_nodes = 777
print(train_data[0].num_nodes) # 33
没成功。 num_nodes 没有改变。 train_data是一个由很多子图组成的定制图数据集,train_data[0]就是其中之一。
知道如何解决这个问题吗?谢谢。
如果我想更改 data[i].edge_index 和 data[i].x,我该怎么办?
在 torch_geometric.data 数据对象中,
num_nodes
是一种根据 x
的大小计算的属性。例如,在您的图表中 x
=[33, 401],而 num_nodes
本质上是 33。
您可以通过按所示分配值来更改
data.x
和 data.edge_index
,但这效率不高,而且如果您的图形数据集从本地文件读取,通常无法工作。
我建议您定义并应用您的 torch_geometric.transforms
来修改原始图表。这里有详细的答案: