megengine.functional.roll#

roll(inp, shift, axis=None)[源代码]#

返回一个inp元素在给定轴axis循环滚动后的tensor,当inp元素移动到最后的位置时,则会在第一个位置重新插入

参数:
  • inp (Tensor) – 输入张量。

  • shift (Union[int, Iterable[int]]) – 循环滚动的位置数,如果shifts是一个元组或者列表,则给定轴axis必须是相同大小的元组或者列表,输入tensor将依次沿着每个维度axis循环滚动相应的位置数。

  • axis (Union[int, Iterable[int], None]) – 指定滚动轴,如果滚动轴axis为None,则输入tensor在循环滚动之前,会先展平成1维tensor,滚动操作完成后再恢复维原来的形状,如果滚动轴axis为元组或者列表输入,则允许滚动轴为重复值。默认为None

实际案例

>>> import numpy as np
>>> x = Tensor([[1,2],[3,4],[5,6]], np.int32)
>>> F.roll(x, 1, 0)
Tensor([[5 6]
 [1 2]
 [3 4]], dtype=int32, device=xpux:0)