PyTorch torch.lobpcg Funktion


Pytorch torch 参考手册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)

Das Ausgabeergebnis ist:

矩阵形状: torch.Size([100, 100])
特征值:
tensor([105.0154, 101.8972,  98.6843])

Pytorch torch 参考手册PyTorch torch Referenzhandbuch

Andere Erweiterungen