用于无向图的 Pytorch 几何数据对象 edge_attr

Pytorch geometric Data object edge_attr for undirected graphs

如何构造一个 edge_attr list for undirected graphs in pytorch geometric Data object. Say we had an undirected graph such as this one。 pytorch几何对象需要的graph COO矩阵为:

[['a', 'b', 'a', 'c', 'b', 'c']
['b', 'a', 'c', 'a', 'c', 'b']]

然后如何构建 edge_attr 列表(这是一个针对每条边的特征的单热编码向量数组)。由于该图是无向的,因此可以一次简单地附加两个相同的单热编码特征向量。例如,假设这些是边缘特征:

(a, b) = [0,0,0,1]
(a, c) = [1,0,0,0]
(b, c) = [0,1,0,0]

edge_attr 列表是否如下所示:

[[0,0,0,1], [0,0,0,1], [1,0,0,0], [1,0,0,0], [0,1,0,0], [0,1,0,0]

注意每个 one-hot 编码的特征向量是如何重复两次的,edge_attr 中的特征向量索引对应于图 COO 矩阵中的相应边。因为图是无向的,所以我们只使用相同的特征矩阵。是正确的方法还是有其他方法?

我想出的答案是肯定的。在 pytorch_geometric 的无向图中,边缘特征需要重复两次,一次是针对 COO 矩阵中存在的每个相应连接。