dgl.DGLGraph.dstdata

property DGLGraph.dstdata

返回一个节点数据视图,用于设置/获取目标节点特征。

假设 g 是一个 DGLGraph。如果 g 是一个包含单一目标节点类型的图,g.dstdata[feat] 返回与名称 feat 关联的目标节点特征。也可以通过将 g.dstdata[feat] 设置为一个 tensor 来设置与名称 feat 关联的目标节点特征。

如果 g 是一个包含多种目标节点类型的图,g.dstdata[feat] 返回一个 dict[str, Tensor],将目标节点类型映射到与相应类型名称 feat 关联的节点特征。也可以通过将 g.dstdata[feat] 设置为一个如前所述的字典,来为某些目标节点类型设置与名称 feat 关联的节点特征。

注意

设置特征时,特征所在的设备必须与图所在的设备相同。

示例

以下示例使用 PyTorch 后端。

>>> import dgl
>>> import torch

设置和获取包含单一目标节点类型的图的特征 ‘h’。

>>> g = dgl.heterograph({
...     ('user', 'plays', 'game'): (torch.tensor([0, 1]), torch.tensor([1, 2]))})
>>> g.dstdata['h'] = torch.ones(3, 1)
>>> g.dstdata['h']
tensor([[1.],
        [1.],
        [1.]])

设置和获取包含多种目标节点类型的图的特征 ‘h’。

>>> g = dgl.heterograph({
...     ('user', 'plays', 'game'): (torch.tensor([1, 2]), torch.tensor([1, 2])),
...     ('user', 'watches', 'movie'): (torch.tensor([2, 2]), torch.tensor([1, 1]))
... })
>>> g.dstdata['h'] = {'game': torch.zeros(3, 1), 'movie': torch.ones(2, 1)}
>>> g.dstdata['h']
{'game': tensor([[0.], [0.], [0.]]),
 'movie': tensor([[1.], [1.]])}
>>> g.dstdata['h'] = {'game': torch.ones(3, 1)}
>>> g.dstdata['h']
{'game': tensor([[1.], [1.], [1.]]),
 'movie': tensor([[1.], [1.]])}

另请参阅

nodes, ndata, dstnodes