通过访问data
对象的属性,我如何知道哪个节点特性属于哪个节点?如果我理解正确的话,data.x
包含节点特征。通过运行下面的循环,我可以访问这些功能但是,例如,如果它属于节点0或节点9,我怎么知道呢?
from torch_geometric.data import Data
edge_index = torch.tensor([[0, 1, 1, 2, 1, 9],
[1, 0, 2, 1, 8, 1]
], dtype=torch.long)
x = torch.tensor([[-5,7], [0,5], [0,9], [10,9]], dtype=torch.float)
data = Data(x=x, edge_index=edge_index)
for item in range(0, data.x.shape[0]):
print(item, data.x[item], data.edge_index.t()[item])
在代码中,通过定义现有的x
,Pytorch Geometric(根据x
的形状(推断出存在四个节点。这在文件中有规定:
如果存在节点级属性(例如
data.x
(,则会自动推断数据对象中的节点数。
您还为节点9之前的节点指定了边。如果您尝试在该代码上运行任何模型,我怀疑它会产生错误,因为预计只存在四个节点。这是因为它将尝试访问x
的第9个元素,这将返回索引错误。
最佳做法是定义存在的节点数。如文件所述:
我们建议通过`data.num_nodes=…显式设置数据对象中的节点数。。。