全局统一
- class dgl.dataloading.negative_sampler.GlobalUniform(k, exclude_self_loops=True, replace=False)[source]
基础类:
_BaseNegativeSampler
负采样器,根据均匀分布随机选择负的源-目的地对。
对于每种类型为
(srctype, etype, dsttype)
的边(u, v)
,DGL 最多生成k
对负边(u', v')
,其中u'
是从所有类型为srctype
的节点中均匀选择的,v'
是从所有类型为dsttype
的节点中均匀选择的。生成的边也将具有类型(srctype, etype, dsttype)
。DGL 保证采样的对之间不会有边。- Parameters:
注释
这个负采样器会尝试生成尽可能多的负样本,但 它可能偶尔会返回少于
k
个负样本每边。 如果一个图非常小或非常密集,以至于没有很多唯一的 负样本存在,这种情况更有可能发生。示例
>>> g = dgl.graph(([0, 1, 2], [1, 2, 3])) >>> neg_sampler = dgl.dataloading.negative_sampler.GlobalUniform(2, True) >>> neg_sampler(g, torch.LongTensor([0, 1])) (tensor([0, 1, 3, 2]), tensor([2, 0, 2, 1]))