Función torch.vsplit de PyTorch


Pytorch torch 参考手册Manual de referencia de PyTorch torch

torch.vsplitEs una función en PyTorch para dividir tensores verticalmente (a lo largo de las filas).

Definición de la función

torch.vsplit(input, indices_or_sections)

Ejemplo de uso

Ejemplo

import torch

# División vertical de un tensor bidimensional
x = torch.arange(12).reshape(4, 3)
print("Tensor 2D original:")
print(x)

result = torch.vsplit(x, 2)
print("Dividido en 2 partes iguales a lo largo de las filas:")
for i, t in enumerate(result):
    print(f" Bloque {i}:n{t}")

# Dividir por índice
result = torch.vsplit(x, [1, 3])
print("nDividir por el índice [1, 3]:")
for i, t in enumerate(result):
    print(f" Bloque {i}:n{t}")

# División vertical de un tensor tridimensional
y = torch.arange(24).reshape(4, 3, 2)
print("nTensor 3D:")
print(y)

result = torch.vsplit(y, 2)
print("nDividido en 2 partes a lo largo de la primera dimensión:")
for i, t in enumerate(result):
    print(f" Bloque {i}: {t.shape}")

El resultado de salida es:

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

按索引 [1, 3] 分割:
  块 0:
tensor([[0, 1, 2]])
  Fragmento 1:
tensor([[3, 4, 5],
        [6, 7, 8]])
  Fragmento 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])
  Fragmento 1: torch.Size([2, 3, 2])

Pytorch torch 参考手册Manual de referencia de PyTorch torch

Otras extensiones