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]
的数据进行更新。注意事项
就地更新(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
现在包含来自h
和g
的边和节点。>>> 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.])