dgl.double_radius_node_labeling
- dgl.double_radius_node_labeling(g, src, dst)[source]
双半径节点标注,如论文 Link Prediction Based on Graph Neural Networks 中所介绍。
此函数计算每个节点的双半径节点标注,以标记给定目标链接在包围子图中的不同节点角色。
源节点 \(s\) 和目标节点 \(t\) 的节点标注设置为 1,从源节点或目标节点无法到达的节点的标注设置为 0。其他节点 \(l\) 的标注根据以下哈希函数定义
\(l = 1 + min(d_s, d_t) + (d//2)[(d//2) + (d%2) - 1]\)
其中 \(d_s\) 和 \(d_t\) 分别表示到源节点和目标节点的最短距离。 \(d = d_s + d_t\)。
- 参数:
- 返回值:
所有节点的标注。张量的形状为 \((N,)\),其中 \(N\) 是输入图中的节点数。
- 返回类型:
Tensor
示例
>>> import dgl
>>> g = dgl.graph(([0,0,0,0,1,1,2,4], [1,2,3,6,3,4,4,5])) >>> dgl.double_radius_node_labeling(g, 0, 1) tensor([1, 1, 3, 2, 3, 7, 0])