dgl.DGLGraph.ndata
- property DGLGraph.ndata
返回一个节点数据视图,用于设置/获取节点特征
假设
g
是一个 DGLGraph。如果g
是一个只有一种节点类型的图,则g.ndata[feat]
返回与名称feat
相关联的节点特征。也可以通过将g.ndata[feat]
设置为一个张量来设置与名称feat
相关联的节点特征。如果
g
是一个具有多种节点类型的图,则g.ndata[feat]
返回一个 dict[str, Tensor],将节点类型映射到与相应类型名称feat
相关联的节点特征。也可以通过将g.ndata[feat]
设置为一个字典(如前所述)来设置与某些节点类型名称feat
相关联的节点特征。注意
设置特征时,特征所在的设备必须与图所在的设备相同。
示例
以下示例使用 PyTorch 后端。
>>> import dgl >>> import torch
为只有一种节点类型的图设置和获取特征 ‘h’。
>>> g = dgl.graph((torch.tensor([0, 1]), torch.tensor([1, 2]))) >>> g.ndata['h'] = torch.ones(3, 1) >>> g.ndata['h'] tensor([[1.], [1.], [1.]])
为具有多种节点类型的图设置和获取特征 ‘h’。
>>> g = dgl.heterograph({ ... ('user', 'follows', 'user'): (torch.tensor([1, 2]), torch.tensor([3, 4])), ... ('player', 'plays', 'game'): (torch.tensor([2, 2]), torch.tensor([1, 1])) ... }) >>> g.ndata['h'] = {'game': torch.zeros(2, 1), 'player': torch.ones(3, 1)} >>> g.ndata['h'] {'game': tensor([[0.], [0.]]), 'player': tensor([[1.], [1.], [1.]])} >>> g.ndata['h'] = {'game': torch.ones(2, 1)} >>> g.ndata['h'] {'game': tensor([[1.], [1.]]), 'player': tensor([[1.], [1.], [1.]])}
另请参阅