Fonction torch.cholesky de PyTorch
Manuel de référence PyTorch torch
torch.choleskyIl s'agit d'une fonction dans PyTorch utilisée pour calculer la décomposition de Cholesky d'une matrice symétrique définie positive. La décomposition de Cholesky décompose une matrice définie positive A en A = L * L^T, où L est une matrice triangulaire inférieure.
Définition de fonction
torch.cholesky(A, upper=False, out=None)
Parameters:
A(Tensor) : La matrice symétrique définie positive d'entrée.upper(bool, facultatif) : Si True, renvoie la matrice triangulaire supérieure ; sinon, renvoie la matrice triangulaire inférieure. La valeur par défaut est False.out(Tensor, optionnel) : Le tenseur de sortie.
Valeur de retour:
torch.Tensor: Renvoie la matrice triangulaire inférieure (ou supérieure) de la décomposition de Cholesky.
Exemple d'utilisation
Exemple
import torch
# Créer une matrice symétrique définie positive
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Décomposition de Cholesky
L = torch.cholesky(A)
print("Matrice originale A :")
print(A)
print("nDécomposition de Cholesky (matrice triangulaire inférieure L) :")
print(L)
print("nVérification : L @ L.T = ")
print(L @ L.T)
# Créer une matrice symétrique définie positive
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Décomposition de Cholesky
L = torch.cholesky(A)
print("Matrice originale A :")
print(A)
print("nDécomposition de Cholesky (matrice triangulaire inférieure L) :")
print(L)
print("nVérification : L @ L.T = ")
print(L @ L.T)
Le résultat de sortie est:
原矩阵 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.]])
Exemple - Renvoyer la matrice triangulaire supérieure
import torch
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Renvoyer la matrice triangulaire supérieure
U = torch.cholesky(A, upper=True)
print("Matrice triangulaire supérieure U :")
print(U)
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Renvoyer la matrice triangulaire supérieure
U = torch.cholesky(A, upper=True)
print("Matrice triangulaire supérieure U :")
print(U)
Autres extensions