快捷方式

torch.tensor_split

torch.tensor_split(input, indices_or_sections, dim=0) List of Tensors

根據 indices_or_sections 指定的索引或分段數,沿維度 dim 將張量拆分為多個子張量,所有子張量都是 input 的檢視。此函式基於 NumPy 的 numpy.array_split()

引數
  • input (Tensor) – 要拆分的張量

  • indices_or_sections (Tensor, intlisttuple of ints) –

    如果 indices_or_sections 是一個整數 n 或一個值為 n 的零維 long tensor,則 input 沿維度 dim 被拆分為 n 個分段。如果 input 沿維度 dim 可以被 n 整除,則每個分段大小相等,為 input.size(dim) / n。如果 input 不能被 n 整除,則前 int(input.size(dim) % n) 個分段的大小為 int(input.size(dim) / n) + 1,其餘分段的大小為 int(input.size(dim) / n)

    如果 indices_or_sections 是一個 int 的列表或元組,或者一個一維的 long tensor,則 input 沿維度 dim 在列表、元組或 tensor 中的每個索引處被拆分。例如,如果 indices_or_sections=[2, 3]dim=0,將生成張量 input[:2]input[2:3]input[3:]

    如果 indices_or_sections 是一個 tensor,它必須是 CPU 上的零維或一維 long tensor。

  • dim (int, 可選) – 沿哪個維度拆分張量。預設值: 0

示例

>>> x = torch.arange(8)
>>> torch.tensor_split(x, 3)
(tensor([0, 1, 2]), tensor([3, 4, 5]), tensor([6, 7]))

>>> x = torch.arange(7)
>>> torch.tensor_split(x, 3)
(tensor([0, 1, 2]), tensor([3, 4]), tensor([5, 6]))
>>> torch.tensor_split(x, (1, 6))
(tensor([0]), tensor([1, 2, 3, 4, 5]), tensor([6]))

>>> x = torch.arange(14).reshape(2, 7)
>>> x
tensor([[ 0,  1,  2,  3,  4,  5,  6],
        [ 7,  8,  9, 10, 11, 12, 13]])
>>> torch.tensor_split(x, 3, dim=1)
(tensor([[0, 1, 2],
        [7, 8, 9]]),
 tensor([[ 3,  4],
        [10, 11]]),
 tensor([[ 5,  6],
        [12, 13]]))
>>> torch.tensor_split(x, (1, 6), dim=1)
(tensor([[0],
        [7]]),
 tensor([[ 1,  2,  3,  4,  5],
        [ 8,  9, 10, 11, 12]]),
 tensor([[ 6],
        [13]]))

文件

訪問 PyTorch 全面的開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源