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