PyTorch torch.lobpcg Funktion
PyTorch torch Referenzhandbuch
torch.lobpcgEs ist eine Funktion in PyTorch, die zur Lösung von Eigenwertproblemen mit der LOBPCG-Methode (Locally Optimal Block Preconditioned Conjugate Gradient) verwendet wird. Sie eignet sich besonders für die Eigenwertberechnung großskaliger dünnbesetzter Matrizen.
Funktionsdefinition
torch.lobpcg(A, B=None, X=None, k=None, n=None, tol=None, maxiter=None, largest=None, method=None, tracker=None, ortho_iparams=None, ortho_fparams=None, ortho_cparams=None)
Parameters:
A(Tensor): Eingabematrix (muss positiv definit sein).B(Tensor, optional): Massenmatrix, verwendet für verallgemeinerte Eigenwertprobleme.X(Tensor, optional): Initiale ungefähre Eigenvektoren.k(int, optional): Anzahl der zu lösenden Eigenwerte.n(int, optional): Blockgröße.
Rückgabewert:
tuple: Gibt ein Tupel aus (Eigenwerte, Eigenvektoren) zurück.
Anwendungsbeispiel
Beispiel
import torch
# Eine symmetrische positiv definite Matrix erstellen
n = 100
A = torch.randn(n, n)
A = A @ A.T # Symmetrisch positiv definit machen
# Initiale Näherung
k = 3
X = torch.randn(n, k)
# LOBPCG lösen
Eigenwerte, Eigenvektoren = torch.lobpcg(A, X=X, k=k)
print("Matrixform:", A.shape)
print("Eigenwerte:")
print(eigenvalues)
# Eine symmetrische positiv definite Matrix erstellen
n = 100
A = torch.randn(n, n)
A = A @ A.T # Symmetrisch positiv definit machen
# Initiale Näherung
k = 3
X = torch.randn(n, k)
# LOBPCG lösen
Eigenwerte, Eigenvektoren = torch.lobpcg(A, X=X, k=k)
print("Matrixform:", A.shape)
print("Eigenwerte:")
print(eigenvalues)
Das Ausgabeergebnis ist:
矩阵形状: torch.Size([100, 100]) 特征值: tensor([105.0154, 101.8972, 98.6843])
Andere Erweiterungen