ToSimple

class dgl.transforms.ToSimple(return_counts='count', aggregator='arbitrary')[source]

基类:BaseTransform

将图转换为不含并行边的简单图,并返回一个新图。

参数:
  • return_counts (str, optional) — 用于存储原始图中边数的边特征名称。

  • aggregator (str, optional) —

    合并重复边特征的方式。

    • 'arbitrary': 从重复边中任意选择一个

    • 'sum': 对重复边求和

    • 'mean': 对重复边求平均

示例

以下示例使用 PyTorch 后端。

>>> import dgl
>>> import torch
>>> from dgl import ToSimple

用例1:将同构图转换为简单图

>>> transform = ToSimple()
>>> g = dgl.graph(([0, 1, 1], [1, 2, 2]))
>>> g.edata['w'] = torch.tensor([[0.1], [0.2], [0.3]])
>>> sg = transform(g)
>>> print(sg.edges())
(tensor([0, 1]), tensor([1, 2]))
>>> print(sg.edata['count'])
tensor([1, 2])
>>> print(sg.edata['w'])
tensor([[0.1000], [0.2000]])

用例2:将异构图转换为简单图

>>> g = dgl.heterograph({
...     ('user', 'follows', 'user'): ([0, 1, 1], [1, 2, 2]),
...     ('user', 'plays', 'game'): ([0, 1, 0], [1, 1, 1])
... })
>>> sg = transform(g)
>>> print(sg.edges(etype='follows'))
(tensor([0, 1]), tensor([1, 2]))
>>> print(sg.edges(etype='plays'))
(tensor([0, 1]), tensor([1, 1]))