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