oneflow.roll¶
-
oneflow.
roll
(input, shifts, dims=None)¶ Roll the tensor along the given dimension(s).
Elements that are shifted beyond the last position are re-introduced at the first position.
If a dimension is not specified, the tensor will be flattened before rolling and then restored to the original shape.
- Parameters
input (oneflow.Tensor) – the input Tensor.
shifts (int or tuple of ints) – The number of places by which the elements of the tensor are shifted. If shifts is a tuple, dims must be a tuple of the same size, and each dimension will be rolled by the corresponding value.
dims (int or tuple of ints) – Axis along which to roll.
- Returns
The result Tensor.
- Return type
For example:
>>> import oneflow as flow >>> import numpy as np >>> x = np.array([[1, 2], ... [3, 4], ... [5, 6], ... [7, 8]]) >>> input = flow.Tensor(x) >>> input.shape oneflow.Size([4, 2]) >>> out = flow.roll(input, 1, 0) >>> out tensor([[7., 8.], [1., 2.], [3., 4.], [5., 6.]], dtype=oneflow.float32) >>> input.roll(-1, 1) tensor([[2., 1.], [4., 3.], [6., 5.], [8., 7.]], dtype=oneflow.float32)