dgl.merge

dgl.merge(graphs)[源码]

将一系列图合并成一个图。

存在于 graphs[i+1] 但不存在于 dgl.merge(graphs[0:i+1]) 中的节点和边将被添加到 dgl.merge(graphs[0:i+1]) 中,并携带它们的数据。同时存在于 dgl.merge(graphs[0:i+1])graphs[i+1] 中的节点,如果数据不匹配,将使用 graphs[i+1] 的数据进行更新。

参数:

graphs (list[DGLGraph]) – 输入图列表。

返回值:

合并后的图。

返回值类型:

DGLGraph

注意事项

  • 就地更新(inplace updates)将应用于一个新的空图。

  • 存在于 dgl.graphs[i+1] 中的特征,如果尚未存在,将在 dgl.merge(dgl.graphs[i+1]) 中创建。

示例

以下示例使用 PyTorch 后端。

>>> import dgl
>>> import torch
>>> g = dgl.graph((torch.tensor([0,1]), torch.tensor([2,3])))
>>> g.ndata["x"] = torch.zeros(4)
>>> h = dgl.graph((torch.tensor([1,2]), torch.tensor([0,4])))
>>> h.ndata["x"] = torch.ones(5)
>>> m = dgl.merge([g, h])

m 现在包含来自 hg 的边和节点。

>>> m.edges()
(tensor([0, 1, 1, 2]), tensor([2, 3, 0, 4]))
>>> m.nodes()
tensor([0, 1, 2, 3, 4])

g 的数据已在 m 中使用 h 的数据进行了更新。

>>> m.ndata["x"]
tensor([1., 1., 1., 1., 1.])

另请参阅

add_nodes, add_edges