如何更改 torch_geometric.data 数据对象元素的属性值?

问题描述 投票:0回答:1

我正在尝试更改 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_indexdata[i].x,我该怎么办?

deep-learning pytorch pytorch-geometric
1个回答
0
投票

在 torch_geometric.data 数据对象中,

num_nodes
是一种根据
x
的大小计算的属性。例如,在您的图表中
x
=[33, 401],而
num_nodes
本质上是 33。

您可以通过按所示分配值来更改

data.x
data.edge_index
,但这效率不高,而且如果您的图形数据集从本地文件读取,通常无法工作。 我建议您定义并应用您的
torch_geometric.transforms
来修改原始图表。这里有详细的答案:

如何向 torch_geometric.data 数据对象元素添加新属性?

© www.soinside.com 2019 - 2024. All rights reserved.