torch.repeat_interleave
-
torch.repeat_interleave(input, repeats, dim=None, *, output_size=None) → Tensor -
Повторяет элементы тензора.
Предупреждение
Это отличается от
torch.Tensor.repeat(), но похоже наnumpy.repeat.- Параметры:
-
- input (Tensor) – входной тензор.
- repeats (Tensor или int) – Количество повторений для каждого элемента. Значение repeats расширяется с помощью broadcasting, чтобы соответствовать форме указанной оси.
- dim (int, необязательно) – Измерение, вдоль которого повторяются значения. По умолчанию входной массив разворачивается в одномерный, и возвращается одномерный выходной массив.
- Именованные аргументы:
-
output_size (int, необязательно) – Общий размер выходных данных для указанной оси (например, сумма значений repeats). Если задано, это позволяет избежать синхронизации потока, необходимой для вычисления формы выходного тензора.
- Возвращает:
-
Тензор с повторениями, имеющий ту же форму, что и входной, за исключением указанной оси.
- Тип возвращаемого значения:
Пример:
>>> 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]])Если
repeatsравноtensor([n1, n2, n3, …]), то результатом будетtensor([0, 0, …, 1, 1, …, 2, 2, …, …]), где0встречаетсяn1раз,1встречаетсяn2раз,2встречаетсяn3раз и т. д.- torch.repeat_interleave(repeats, *) Tensor
Повторяет 0 количество раз repeats[0], 1 — repeats[1] раз, 2 — repeats[2] раз и т. д.
- Параметры:
-
repeats (Tensor) – Количество повторений для каждого элемента.
- Возвращает:
-
Тензор с повторениями размера
sum(repeats). - Тип возвращаемого значения:
Пример:
>>> torch.repeat_interleave(torch.tensor([1, 2, 3])) tensor([0, 1, 1, 2, 2, 2])
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.repeat_interleave.html