移除自循环

class dgl.transforms.RemoveSelfLoop[source]

Bases: BaseTransform

移除图中每个节点的自环并返回一个新图。

对于异构图,此操作仅适用于具有相同源节点类型和目标节点类型的边类型。

示例

>>> import dgl
>>> from dgl import RemoveSelfLoop

案例1:移除同质图中的自环

>>> transform = RemoveSelfLoop()
>>> g = dgl.graph(([1, 1], [1, 2]))
>>> new_g = transform(g)
>>> print(new_g.edges())
(tensor([1]), tensor([2]))

案例2:移除异质图中的自环

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