dgl.DGLGraph.dstnodes

property DGLGraph.dstnodes

返回目标节点的节点视图

如果图是单二部图(参考is_unibipartite()),则此属性为nodes()在目标节点类型上的受限视图。否则,它是nodes()的别名。

它可以用于:

  1. 获取单一节点类型的节点 ID。

  2. 设置/获取单一节点类型的所有节点的特征。

示例

以下示例使用 PyTorch 后端。

>>> import dgl
>>> import torch

创建一个单二部图。

>>> g = dgl.heterograph({
...     ('user', 'plays', 'game'): (torch.tensor([0]), torch.tensor([1])),
...     ('developer', 'develops', 'game'): (torch.tensor([1]), torch.tensor([2]))
... })

获取目标节点类型的节点 ID。

>>> g.dstnodes('game')
tensor([0, 1, 2])

设置/获取目标节点类型的特征。

>>> g.dstnodes['game'].data['h'] = torch.ones(3, 1)
>>> g.dstnodes['game'].data['h']
tensor([[1.],
        [1.],
        [1.]])

创建一个非单二部图。

>>> g = dgl.heterograph({
...     ('user', 'follows', 'user'): (torch.tensor([0]), torch.tensor([1])),
...     ('developer', 'develops', 'game'): (torch.tensor([1]), torch.tensor([2]))
... })

dgl.DGLGraph.dstnodes() 会回退到 dgl.DGLGraph.nodes(),此时可以获取源节点和目标节点两者的节点 ID。

>>> g.dstnodes('developer')
tensor([0, 1])

在这种情况下,也可以设置/获取源节点类型的特征。

>>> g.dstnodes['developer'].data['h'] = torch.ones(2, 1)
>>> g.dstnodes['developer'].data['h']
tensor([[1.],
        [1.]])

另见

dstdata