Rate this Page

torch.repeat_interleave#

torch.repeat_interleave(input,repeats,dim=None,*,output_size=None)Tensor#

Repeat elements of a tensor.

Warning

This is different fromtorch.Tensor.repeat() but similar tonumpy.repeat.

Parameters
  • input (Tensor) – the input tensor.

  • repeats (Tensor orint) – The number of repetitions for each element.repeats is broadcasted to fit the shape of the given axis.

  • dim (int,optional) – The dimension along which to repeat values.By default, use the flattened input array, and return a flat outputarray.

Keyword Arguments

output_size (int,optional) – Total output size for the given axis( e.g. sum of repeats). If given, it will avoid stream synchronizationneeded to calculate output shape of the tensor.

Returns

Repeated tensor which has the same shape as input, except along the given axis.

Return type

Tensor

Example:

>>>x=torch.tensor([1,2,3])>>>x.repeat_interleave(2)tensor([1, 1, 2, 2, 3, 3])>>>y=torch.tensor([[1,2],[3,4]])>>>torch.repeat_interleave(y,2)tensor([1, 1, 2, 2, 3, 3, 4, 4])>>>torch.repeat_interleave(y,3,dim=1)tensor([[1, 1, 1, 2, 2, 2],        [3, 3, 3, 4, 4, 4]])>>>torch.repeat_interleave(y,torch.tensor([1,2]),dim=0)tensor([[1, 2],        [3, 4],        [3, 4]])>>>torch.repeat_interleave(y,torch.tensor([1,2]),dim=0,output_size=3)tensor([[1, 2],        [3, 4],        [3, 4]])

If therepeats istensor([n1, n2, n3, …]), then the output will betensor([0, 0, …, 1, 1, …, 2, 2, …, …]) where0 appearsn1 times,1 appearsn2 times,2 appearsn3 times, etc.

torch.repeat_interleave(repeats,*)Tensor

Repeats 0 repeats[0] times, 1 repeats[1] times, 2 repeats[2] times, etc.

Parameters

repeats (Tensor) – The number of repetitions for each element.

Returns

Repeated tensor of sizesum(repeats).

Return type

Tensor

Example:

>>>torch.repeat_interleave(torch.tensor([1,2,3]))tensor([0, 1, 1, 2, 2, 2])