图中的节点和边

可以有节点特征,也可以有边特征。

节点特征,如node2vec,可以理解为[batch, feature]的dense矩阵

而边特征,可以理解为[batch, batch], (nnz =边的数量) 的sparse矩阵。sparse 中的values向量存的就是边特征的值。

另外,

对于加权图,用户可以将权重储存为一个边特征。

```

# 边 0->1, 0->2, 0->3, 1->3
>>> edges = th.tensor([0, 0, 0, 1]), th.tensor([1, 2, 3, 3])
>>> weights = th.tensor([0.1, 0.6, 0.9, 0.7])  # 每条边的权重
>>> g = dgl.graph(edges)
>>> g.edata['w'] = weights  # 将其命名为 'w'
>>> g
Graph(num_nodes=4, num_edges=4,
      ndata_schemes={}
      edata_schemes={'w' : Scheme(shape=(,), dtype=torch.float32)})


参考:
https://docs.dgl.ai/en/0.6.x/guide_cn/graph-feature.html
posted @ 2021-06-18 17:40  xuyv  阅读(464)  评论(0编辑  收藏  举报