mindspore.ops.roll

mindspore.ops.roll(x, shifts, dims=None)[源代码]

沿轴移动Tensor的元素。

参数:
  • x (Tensor) - 输入Tensor。

  • shifts (Union[list(int), tuple(int), int]) - 指定元素移动方式,如果为正数,则元素沿指定维度正向移动(朝向较大的索引)的位置数。负偏移将向相反的方向滚动元素。

  • dims (Union[list(int), tuple(int), int], optional) - 指定需移动维度的轴。默认值:None。如果 dims 为None,则会将输入Tensor展平后再进行roll计算,然后将计算结果reshape为输入的shape。

返回:

Tensor,shape和数据类型与输入 x 相同。

异常:
  • TypeError - shifts 不是int、tuple或list。

  • TypeError - dims 不是int、tuple或list。

支持平台:

Ascend GPU

样例:

>>> import numpy as np
>>> import mindspore as ms
>>> import mindspore.ops as ops
>>> from mindspore import Tensor
>>> input_x = Tensor(np.array([0, 1, 2, 3, 4]).astype(np.float32))
>>> output = ops.roll(input_x, shifts=2, dims=0)
>>> print(output)
[3. 4. 0. 1. 2.]