Fonction torch.vsplit de PyTorch


Pytorch torch 参考手册Manuel de référence Pytorch torch

torch.vsplitest une fonction dans PyTorch utilisée pour diviser des tenseurs verticalement (le long des lignes).

Définition de fonction

torch.vsplit(input, indices_or_sections)

Exemple d'utilisation

Exemple

import torch

# Division verticale d'un tenseur 2D
x = torch.arange(12).reshape(4, 3)
print("Tenseur 2D original:")
print(x)

result = torch.vsplit(x, 2)
print("Diviser uniformément en 2 parties selon les lignes:")
for i, t in enumerate(result):
    print(f" Bloc {i}:n{t}")

# Diviser par index
result = torch.vsplit(x, [1, 3])
print("nDiviser par index [1, 3]:")
for i, t in enumerate(result):
    print(f" Bloc {i}:n{t}")

# Division verticale d'un tenseur 3D
y = torch.arange(24).reshape(4, 3, 2)
print("nTenseur 3D:")
print(y)

result = torch.vsplit(y, 2)
print("nDiviser en 2 parties selon la première dimension:")
for i, t in enumerate(result):
    print(f" Bloc {i}: {t.shape}")

Le résultat de sortie est:

原始二维张量:
tensor([[ 0,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8],
        [ 9, 10, 11]])
沿行平均分为 2 份:
  块 0:
tensor([[0, 1, 2],
        [3, 4, 5]])
  Chunk 1:
tensor([[ 6,  7,  8],
        [ 9, 10, 11]])

按索引 [1, 3] 分割:
  块 0:
tensor([[0, 1, 2]])
  Chunk 1:
tensor([[3, 4, 5],
        [6, 7, 8]])
  Chunk 2:
tensor([[ 9, 10, 11]])

三维张量:
tensor([[[ 0,  1],
         [ 3,  4],
         [ 5,  6]],

        [[ 7,  8],
         [ 9, 10],
         [11, 12]],

        [[13, 14],
         [15, 16],
         [17, 18]],

        [[19, 20],
         [21, 22],
         [23, 24]]])
沿第一维分为 2 份:
  块 0: torch.Size([2, 3, 2])
  Chunk 1: torch.Size([2, 3, 2])

Pytorch torch 参考手册Manuel de référence Pytorch torch

Autres extensions