評價此頁

torch.slice_scatter#

torch.slice_scatter(input, src, dim=0, start=None, end=None, step=1) Tensor#

src 張量中的值嵌入到指定維度的 input 張量中。此函式返回一個具有全新儲存的張量,而不是建立一個檢視。

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

  • src (Tensor) – 要嵌入到 input 中的張量

  • dim (int) – 插入切片的目標維度

  • start (Optional[int]) – 插入切片的起始索引

  • end (Optional[int]) – 插入切片的結束索引

  • step (int) – 每隔多少個元素進行插入

示例

>>> a = torch.zeros(8, 8)
>>> b = torch.ones(2, 8)
>>> a.slice_scatter(b, start=6)
tensor([[0., 0., 0., 0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0., 0., 0., 0.],
        [1., 1., 1., 1., 1., 1., 1., 1.],
        [1., 1., 1., 1., 1., 1., 1., 1.]])

>>> b = torch.ones(8, 2)
>>> a.slice_scatter(b, dim=1, start=2, end=6, step=2)
tensor([[0., 0., 1., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 1., 0., 0., 0.],
        [0., 0., 1., 0., 1., 0., 0., 0.]])