Rate this Page

torch.combinations#

torch.combinations(input:Tensor,r:int=2,with_replacement:bool=False)seq#

Compute combinations of lengthrr of the given tensor. The behavior is similar topython’sitertools.combinations whenwith_replacement is set toFalse, anditertools.combinations_with_replacement whenwith_replacement is set toTrue.

Parameters
  • input (Tensor) – 1D vector.

  • r (int,optional) – number of elements to combine

  • with_replacement (bool,optional) – whether to allow duplication in combination

Returns

A tensor equivalent to converting all the input tensors into lists, doitertools.combinations oritertools.combinations_with_replacement on theselists, and finally convert the resulting list into tensor.

Return type

Tensor

Example:

>>>a=[1,2,3]>>>list(itertools.combinations(a,r=2))[(1, 2), (1, 3), (2, 3)]>>>list(itertools.combinations(a,r=3))[(1, 2, 3)]>>>list(itertools.combinations_with_replacement(a,r=2))[(1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 3)]>>>tensor_a=torch.tensor(a)>>>torch.combinations(tensor_a)tensor([[1, 2],        [1, 3],        [2, 3]])>>>torch.combinations(tensor_a,r=3)tensor([[1, 2, 3]])>>>torch.combinations(tensor_a,with_replacement=True)tensor([[1, 1],        [1, 2],        [1, 3],        [2, 2],        [2, 3],        [3, 3]])