DLG一些例子的解释

DGL创建异质图:

import dgl
import torch
data_dict = {
    ('user', 'follows', 'user'): (torch.tensor([0, 1]), torch.tensor([1, 2])),
    ('user', 'follows', 'topic'): (torch.tensor([1, 1]), torch.tensor([1, 2])),
    ('user', 'plays', 'game'): (torch.tensor([0, 3]), torch.tensor([3, 4]))
}
g = dgl.heterograph(data_dict)
>>> g
Graph(num_nodes={'game': 5, 'topic': 3, 'user': 4},
      num_edges={('user', 'follows', 'user'): 2, ('user', 'follows', 'topic'): 2,
                 ('user', 'plays', 'game'): 2},
      metagraph=[('user', 'user', 'follows'), ('user', 'topic', 'follows'),
                 ('user', 'game', 'plays')])

解释一下data_dict中tensor的含义,第一个tensor代表源节点ID,第二个tensor代表目标节点ID

示例:

('user', 'plays', 'game'): (torch.tensor([0, 3]), torch.tensor([3, 4]))

表示user节点有节点‘0’和节点‘3’,game节点有节点‘3’和节点‘4’
在图中,节点的数目是由创建时的最大节点ID决定的,例如game节点出现的最大值是4,所以就有5个节点,user节点出现的最大值是3,所以有4个节点。

你可能感兴趣的:(DLG一些例子的解释)