class dgl.dataloading.negative_sampler.PerSourceUniform(k)[source]

Bases: _BaseNegativeSampler

Negative sampler that randomly chooses negative destination nodes for each source node according to a uniform distribution.

For each edge (u, v) of type (srctype, etype, dsttype), DGL generates k pairs of negative edges (u, v'), where v' is chosen uniformly from all the nodes of type dsttype. The resulting edges will also have type (srctype, etype, dsttype).


k (int) – The number of negative samples per edge.


>>> g = dgl.graph(([0, 1, 2], [1, 2, 3]))
>>> neg_sampler = dgl.dataloading.negative_sampler.PerSourceUniform(2)
>>> neg_sampler(g, torch.tensor([0, 1]))
(tensor([0, 0, 1, 1]), tensor([1, 0, 2, 3]))