Función torch.transpose de PyTorch
Manual de referencia de Pytorch torch
torch.transposeEs una función en PyTorch que se utiliza para intercambiar dos dimensiones de un tensor. Devuelve una vista transpuesta del tensor de entrada.
Esta es una operación común en el aprendizaje profundo, utilizada para cambiar la forma de los datos y adaptarse a diferentes necesidades de cálculo.
Definición de la función
torch.transpose(input, dim0, dim1)
Parámetros:
input(Tensor): El tensor de entrada.dim0(int): La primera dimensión a intercambiar.dim1(int): La segunda dimensión a intercambiar.
Valor de retorno:
torch.Tensor: Devuelve la vista del tensor transpuesto.
Ejemplos de uso
Ejemplo 1: Transposición de matriz bidimensional
Ejemplo
import torch
# Crear una matriz de 3x4
x = torch.randn(3, 4)
# Transponer
y = torch.transpose(x, 0, 1)
print("Forma original:", x.shape)
print("Forma después de transponer:", y.shape)
print("Original:")
print(x)
print("Después de transponer:")
print(y)
# Crear una matriz de 3x4
x = torch.randn(3, 4)
# Transponer
y = torch.transpose(x, 0, 1)
print("Forma original:", x.shape)
print("Forma después de transponer:", y.shape)
print("Original:")
print(x)
print("Después de transponer:")
print(y)
El resultado de salida es:
原始形状: torch.Size([3, 4])
转置后形状: torch.Size([4, 3])
原始:
tensor([[ 0.3364, -0.7844, 0.9760, 0.4381],
[ 0.7865, -1.2775, 0.5767, -0.5268],
[-0.6399, -0.6743, -0.2972, -0.4781]])
转置后:
tensor([[ 0.3364, 0.7865, -0.6399],
[-0.7844, -1.2775, -0.6743],
[ 0.9760, 0.5767, -0.2972],
[ 0.4381, -0.5268, -0.4781]])
Ejemplo 2: Transposición de tensor multidimensional
Ejemplo
import torch
# Crear un tensor 3D
x = torch.randn(2, 3, 4)
# Intercambiar dim=1 y dim=2
y = torch.transpose(x, 1, 2)
print("Forma original:", x.shape)
print("Forma después de transponer:", y.shape)
# Crear un tensor 3D
x = torch.randn(2, 3, 4)
# Intercambiar dim=1 y dim=2
y = torch.transpose(x, 1, 2)
print("Forma original:", x.shape)
print("Forma después de transponer:", y.shape)
El resultado de salida es:
原始形状: torch.Size([2, 3, 4]) 转置后形状: torch.Size([2, 4, 3])
Notas
torch.transposeDevuelve una vista, no una copia.- Para tensores bidimensionales, también se puede usar
tensor.t()el método.
Otras extensiones