函数原型:
torch.repeat_interleave(input, repeats, dim=None) → Tensor
详解:
函数的功能:重复张量的元素,返回一个张量
输入参数:
返回值:
返回一个张量,这个张量与输入张量在dim维的shape不同,其他维的shape与输入的shape一致
举例说明:
>>> 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])
# 指定维度,0轴为纵向,在列的方向重复
>>> torch.repeat_interleave(y,3,0)
tensor([[1, 2],
[1, 2],
[1, 2],
[3, 4],
[3, 4],
[3, 4]])
# 1轴为横向,在行的方向重复
>>> 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]])