Función PyTorch torch.dsplit
Manual de referencia de Pytorch torch
torch.dsplitEs una función en PyTorch para dividir tensores en profundidad (a lo largo de la tercera dimensión).
Definición de la función
torch.dsplit(input, indices_or_sections)
Ejemplo de uso
Ejemplo
import torch
# División en profundidad de un tensor tridimensional
x = torch.arange(24).reshape(2, 3, 4)
print("Tensor tridimensional original:")
print(x)
result = torch.dsplit(x, 2)
print("Dividido en 2 partes a lo largo de la profundidad:")
for i, t in enumerate(result):
print(f" Bloque {i}:n{t}")
# Dividir por índice
result = torch.dsplit(x, [1, 3])
print("nDividir por índice [1, 3]:")
for i, t in enumerate(result):
print(f" Bloque {i}:n{t}")
# División en profundidad de un tensor de 4 dimensiones
y = torch.arange(32).reshape(2, 2, 4, 2)
print("nForma del tensor 4D:", y.shape)
result = torch.dsplit(y, 2)
print("Dividido en 2 partes a lo largo de la tercera dimensión:")
for i, t in enumerate(result):
print(f" Bloque {i} forma: {t.shape}")
# División en profundidad de un tensor tridimensional
x = torch.arange(24).reshape(2, 3, 4)
print("Tensor tridimensional original:")
print(x)
result = torch.dsplit(x, 2)
print("Dividido en 2 partes a lo largo de la profundidad:")
for i, t in enumerate(result):
print(f" Bloque {i}:n{t}")
# Dividir por índice
result = torch.dsplit(x, [1, 3])
print("nDividir por índice [1, 3]:")
for i, t in enumerate(result):
print(f" Bloque {i}:n{t}")
# División en profundidad de un tensor de 4 dimensiones
y = torch.arange(32).reshape(2, 2, 4, 2)
print("nForma del tensor 4D:", y.shape)
result = torch.dsplit(y, 2)
print("Dividido en 2 partes a lo largo de la tercera dimensión:")
for i, t in enumerate(result):
print(f" Bloque {i} forma: {t.shape}")
El resultado de salida es:
原始三维张量:
tensor([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
沿深度分为 2 份:
块 0:
tensor([[[ 0, 1],
[ 4, 5],
[ 8, 9]],
[[12, 13],
[16, 17],
[20, 21]]])
Fragmento 1:
tensor([[[ 2, 3],
[ 6, 7],
[10, 11]],
[[14, 15],
[18, 19],
[22, 23]]])
按索引 [1, 3] 分割:
块 0:
tensor([[[ 0],
[ 4],
[ 8]],
[[12],
[16],
[20]]])
Fragmento 1:
tensor([[[ 1, 2],
[ 5, 6],
[ 9, 10]],
[[13, 14],
[17, 18],
[21, 22]]])
Fragmento 2:
tensor([[[ 3],
[ 7],
[11]],
[[15],
[19],
[23]]])
四维张量形状: torch.Size([2, 2, 4, 2])
沿第三维分为 2 份:
块 0 形状: torch.Size([2, 2, 2, 2])
Fragmento 1 形状: torch.Size([2, 2, 2, 2])
Otras extensiones