評價此頁

torch.roll#

torch.roll(input, shifts, dims=None) Tensor#

沿著給定的維度對張量 input 進行滾動。超出最後一個位置的元素會被重新引入到第一個位置。如果 dimsNone,張量將在滾動前被展平,然後再恢復到原始形狀。

引數
  • input (Tensor) – 輸入張量。

  • shifts (inttuple of ints) – 張量元素的移位量。如果 shifts 是一個元組,dims 必須是一個相同大小的元組,並且每個維度將按相應的值進行滾動

  • dims (inttuple 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]])