dgl.DGLGraph.srcnodes

property DGLGraph.srcnodes

返回源节点的节点视图

如果图是一个单二分图(参见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.srcnodes('user')
tensor([0])
>>> g.srcnodes('developer')
tensor([0, 1])

设置/获取源节点类型的特性。

>>> g.srcnodes['user'].data['h'] = torch.ones(1, 1)
>>> g.srcnodes['user'].data['h']
tensor([[1.]])

创建一个不是单二分图的图。

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

dgl.DGLGraph.srcnodes() 回退到 dgl.DGLGraph.nodes() 并且可以获取源节点和目标节点类型的节点ID。

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

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

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

另请参阅

srcdata