Función torch.cholesky de PyTorch
Manual de referencia de PyTorch torch
torch.choleskyEs una función de PyTorch utilizada para calcular la descomposición de Cholesky de una matriz simétrica definida positiva. La descomposición de Cholesky descompone una matriz definida positiva A en A = L * L^T, donde L es una matriz triangular inferior.
Definición de la función
torch.cholesky(A, upper=False, out=None)
Parámetros:
A(Tensor): La matriz simétrica definida positiva de entrada.upper(bool, opcional): Si es True, devuelve la matriz triangular superior; de lo contrario, devuelve la matriz triangular inferior. El valor predeterminado es False.out(Tensor, opcional): El tensor de salida.
Valor de retorno:
torch.Tensor: Devuelve la matriz triangular inferior (o superior) de la descomposición de Cholesky.
Ejemplo de uso
Ejemplo
import torch
# Crear una matriz simétrica definida positiva
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Descomposición de Cholesky
L = torch.cholesky(A)
print("Matriz original A:")
print(A)
print("nDescomposición de Cholesky (matriz triangular inferior L):")
print(L)
print("nVerificación: L @ L.T = ")
print(L @ L.T)
# Crear una matriz simétrica definida positiva
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Descomposición de Cholesky
L = torch.cholesky(A)
print("Matriz original A:")
print(A)
print("nDescomposición de Cholesky (matriz triangular inferior L):")
print(L)
print("nVerificación: L @ L.T = ")
print(L @ L.T)
El resultado de salida es:
原矩阵 A:
tensor([[4., 2., 2.],
[2., 5., 3.],
[2., 3., 6.]])
Cholesky 分解 (下三角矩阵 L):
tensor([[2.0000, 0.0000, 0.0000],
[1.0000, 2.0000, 0.0000],
[1.0000, 1.0000, 2.0000]])
验证: L @ L.T =
tensor([[4., 2., 2.],
[2., 5., 3.],
[2., 3., 6.]])
Ejemplo - Devolver la matriz triangular superior
import torch
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Devolver la matriz triangular superior
U = torch.cholesky(A, upper=True)
print("Matriz triangular superior U:")
print(U)
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Devolver la matriz triangular superior
U = torch.cholesky(A, upper=True)
print("Matriz triangular superior U:")
print(U)
Otras extensiones