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