torch.roll
-
torch.roll(input, shifts, dims=None) → Tensor -
Циклически сдвигает тензор
inputвдоль указанных измерений. Элементы, сдвинутые за последнюю позицию, вновь появляются в первой позиции. ЕслиdimsравноNone, тензор будет сплющен перед циклическим сдвигом, а затем восстановлен до исходной формы.- Параметры:
-
- input (Tensor) – входной тензор.
- shifts (int or tuple of ints) – Число позиций, на которое сдвигаются элементы тензора. Если shifts — кортеж, dims должен быть кортежем того же размера, и каждое измерение будет циклически сдвинуто на соответствующее значение.
- dims (int or tuple of ints) – Ось, вдоль которой выполняется циклический сдвиг.
Пример:
>>> x = torch.tensor([1, 2, 3, 4, 5, 6, 7, 8]).view(4, 2) >>> x tensor([[1, 2], [3, 4], [5, 6], [7, 8]]) >>> torch.roll(x, 1) tensor([[8, 1], [2, 3], [4, 5], [6, 7]]) >>> torch.roll(x, 1, 0) tensor([[7, 8], [1, 2], [3, 4], [5, 6]]) >>> torch.roll(x, -1, 0) tensor([[3, 4], [5, 6], [7, 8], [1, 2]]) >>> torch.roll(x, shifts=(2, 1), dims=(0, 1)) tensor([[6, 5], [8, 7], [2, 1], [4, 3]])
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.roll.html