Función PyTorch torch.dstack
Manual de referencia de Pytorch torch
torch.dstackEs una función en PyTorch utilizada para apilar tensores en profundidad (a lo largo de la tercera dimensión).
Definición de la función
torch.dstack(tensors, *, out=None)
Ejemplo de uso
Ejemplo
import torch
# Apilamiento en profundidad de tensores bidimensionales
x1 = torch.tensor([[1, 2], [3, 4]])
x2 = torch.tensor([[5, 6], [7, 8]])
result = torch.dstack([x1, x2])
print("Apilamiento en profundidad de tensores bidimensionales:")
print(f" x1:n{x1}")
print(f" x2:n{x2}")
print(f" dstack:n{result}")
# Apilamiento en profundidad de tensores tridimensionales
y1 = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
y2 = torch.tensor([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
result = torch.dstack([y1, y2])
print("nApilamiento en profundidad de tensores tridimensionales:")
print(f" y1:n{y1}")
print(f" y2:n{y2}")
print(f" dstack:n{result}")
print(f" dstack forma: {result.shape}")
# Apilamiento en profundidad de tensores unidimensionales
z1 = torch.tensor([1, 2, 3])
z2 = torch.tensor([4, 5, 6])
result = torch.dstack([z1, z2])
print("nApilamiento en profundidad de tensores unidimensionales:")
print(f" z1: {z1}")
print(f" z2: {z2}")
print(f" dstack:n{result}")
# Apilamiento en profundidad de tensores bidimensionales
x1 = torch.tensor([[1, 2], [3, 4]])
x2 = torch.tensor([[5, 6], [7, 8]])
result = torch.dstack([x1, x2])
print("Apilamiento en profundidad de tensores bidimensionales:")
print(f" x1:n{x1}")
print(f" x2:n{x2}")
print(f" dstack:n{result}")
# Apilamiento en profundidad de tensores tridimensionales
y1 = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
y2 = torch.tensor([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
result = torch.dstack([y1, y2])
print("nApilamiento en profundidad de tensores tridimensionales:")
print(f" y1:n{y1}")
print(f" y2:n{y2}")
print(f" dstack:n{result}")
print(f" dstack forma: {result.shape}")
# Apilamiento en profundidad de tensores unidimensionales
z1 = torch.tensor([1, 2, 3])
z2 = torch.tensor([4, 5, 6])
result = torch.dstack([z1, z2])
print("nApilamiento en profundidad de tensores unidimensionales:")
print(f" z1: {z1}")
print(f" z2: {z2}")
print(f" dstack:n{result}")
El resultado de salida es:
二维张量深度堆叠:
x1:
tensor([[1, 2],
[3, 4]])
x2:
tensor([[5, 6],
[7, 8]])
dstack:
tensor([[[ 1, 5],
[ 2, 6]],
[[ 3, 7],
[ 4, 8]]])
三维张量深度堆叠:
y1:
tensor([[[ 1, 2],
[ 3, 4]],
[[ 5, 6],
[ 7, 8]]])
y2:
tensor([[[ 9, 10],
[11, 12]],
[[13, 14],
[15, 16]]])
dstack:
tensor([[[ 1, 2, 9, 10],
[ 3, 4, 11, 12]],
[[ 5, 6, 13, 14],
[ 7, 8, 15, 16]]])
dstack 形状: torch.Size([2, 2, 4])
一维张量深度堆叠:
z1: tensor([1, 2, 3])
z2: tensor([4, 5, 6])
dstack:
tensor([[1, 4],
[2, 5],
[3, 6]])
Otras extensiones