repeat的参数是每一个维度上重复的次数,repeat_interleave的参数是重复的次数和维度。
repeat相当于将该张量复制,然后在某一维度concat起来,而repeat_interleave是将张量中的元素沿某一维度复制n次,即复制后的张量沿该维度相邻的n个元素是相同的。
例子:
a = np.arange(0, 10)
a = a.reshape(2, -1)
a = torch.from_numpy(a)
b = a.repeat(2, 1)
print(b)
c = a.repeat_interleave(2, 1)
print(c)
d = a.repeat(1, 2)
print(d)
e = a.repeat_interleave(2, 0)
print(e)