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
from megengine import tensor
import megengine.functional as F

x = tensor([[1,2],[3,4],[5,6]], np.int32)
y = F.roll(x, 1, 0)
print(y.numpy())

输出:

[[5 6]
[1 2]
[3 4]]