PyTorch torch.cholesky-Funktion
PyTorch torch-Referenzhandbuch
torch.choleskyDies ist eine Funktion in PyTorch, die zur Berechnung der Cholesky-Zerlegung einer symmetrischen positiv definiten Matrix verwendet wird. Die Cholesky-Zerlegung zerlegt eine positiv definite Matrix A in A = L * L^T, wobei L eine untere Dreiecksmatrix ist.
Funktionsdefinition
torch.cholesky(A, upper=False, out=None)
Parameters:
A(Tensor): Die eingegebene symmetrische positiv definite Matrix.upper(bool, optional): Wenn True, wird die obere Dreiecksmatrix zurückgegeben; andernfalls wird die untere Dreiecksmatrix zurückgegeben. Standardwert ist False.out(Tensor, optional): Der Ausgabe-Tensor.
Rückgabewert:
torch.Tensor: Gibt die untere (oder obere) Dreiecksmatrix der Cholesky-Zerlegung zurück.
Anwendungsbeispiel
Beispiel
import torch
# Eine symmetrische positiv definite Matrix erstellen
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Cholesky-Zerlegung
L = torch.cholesky(A)
print("Originalmatrix A:")
print(A)
print("nCholesky-Zerlegung (untere Dreiecksmatrix L):")
print(L)
print("nVerifizierung: L @ L.T = ")
print(L @ L.T)
# Eine symmetrische positiv definite Matrix erstellen
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Cholesky-Zerlegung
L = torch.cholesky(A)
print("Originalmatrix A:")
print(A)
print("nCholesky-Zerlegung (untere Dreiecksmatrix L):")
print(L)
print("nVerifizierung: L @ L.T = ")
print(L @ L.T)
Das Ausgabeergebnis ist:
原矩阵 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.]])
Beispiel - Obere Dreiecksmatrix zurückgeben
import torch
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Die obere Dreiecksmatrix zurückgeben
U = torch.cholesky(A, upper=True)
print("Obere Dreiecksmatrix U:")
print(U)
A = torch.tensor([[4.0, 2.0, 2.0],
[2.0, 5.0, 3.0],
[2.0, 3.0, 6.0]])
# Die obere Dreiecksmatrix zurückgeben
U = torch.cholesky(A, upper=True)
print("Obere Dreiecksmatrix U:")
print(U)
Andere Erweiterungen