dgl.distributed.sample_neighbors
- dgl.distributed.sample_neighbors(g, nodes, fanout, edge_dir='in', prob=None, replace=False, use_graphbolt=False)[source]
从分布式图中给定节点的邻居中采样。
对于每个节点,将随机选择一定数量的入站(或当
edge_dir == 'out'
时为出站)边。返回的图将包含原始图中的所有节点,但仅包含采样的边。节点/边的特征不会被保留。采样边的原始ID作为dgl.EID特征存储在返回的图中。
对于异构图,
nodes
是一个字典,其键是节点类型,值是特定类型的节点ID。- Parameters:
g (DistGraph) – 分布式图。
nodes (tensor 或 dict) – 从中采样邻居的节点ID。如果它是一个字典,它应该只包含一个键值对,以使此API与dgl.sampling.sample_neighbors保持一致。
fanout (int) –
每个节点要采样的边数。
如果给定-1,将选择所有邻居。
edge_dir (str, optional) –
确定是采样入边还是出边。
可以取
in
表示入边,或out
表示出边。prob (str, optional) –
用作节点每个相邻边的(未归一化的)概率的特征名称。该特征必须为每条边只有一个元素。
特征必须是非负浮点数,并且每个节点的入边/出边的特征之和必须为正(尽管它们不必总和为一)。否则,结果将是未定义的。
replace (bool, optional) –
如果为True,则进行有放回抽样。
在有放回抽样时,抽样的子图可能包含平行边。
对于无放回抽样,如果fanout大于邻居数量,则所有邻居都会被抽样。如果fanout等于-1,则收集所有邻居。
use_graphbolt (bool, optional) – 是否使用GraphBolt进行采样。
- Returns:
一个仅包含采样邻居边的采样子图。它在CPU上。
- Return type: