Fonction torch.lobpcg de PyTorch
Manuel de référence Pytorch torch
torch.lobpcgC'est une fonction de PyTorch utilisée pour résoudre des problèmes de valeurs propres à l'aide de la méthode LOBPCG (Locally Optimal Block Preconditioned Conjugate Gradient). Elle est particulièrement adaptée au calcul de valeurs propres de matrices creuses de grande taille.
Définition de fonction
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) : Matrice d'entrée (doit être définie positive).B(Tensor, optional) : Matrice de masse, utilisée pour les problèmes de valeurs propres généralisés.X(Tensor, optional) : Vecteurs propres approximatifs initiaux.k(int, optional) : Nombre de valeurs propres à calculer.n(int, optional) : Taille de bloc.
Valeur de retour:
tuple: Renvoie un tuple (valeurs propres, vecteurs propres).
Exemple d'utilisation
Exemple
import torch
# Créer une matrice symétrique définie positive
n = 100
A = torch.randn(n, n)
A = A @ A.T # La rendre symétrique définie positive
# Approximation initiale
k = 3
X = torch.randn(n, k)
# Résolution LOBPCG
valeurs propres, vecteurs propres = torch.lobpcg(A, X=X, k=k)
print("Forme de la matrice :", A.shape)
print("Valeurs propres :")
print(eigenvalues)
# Créer une matrice symétrique définie positive
n = 100
A = torch.randn(n, n)
A = A @ A.T # La rendre symétrique définie positive
# Approximation initiale
k = 3
X = torch.randn(n, k)
# Résolution LOBPCG
valeurs propres, vecteurs propres = torch.lobpcg(A, X=X, k=k)
print("Forme de la matrice :", A.shape)
print("Valeurs propres :")
print(eigenvalues)
Le résultat de sortie est:
矩阵形状: torch.Size([100, 100]) 特征值: tensor([105.0154, 101.8972, 98.6843])
Autres extensions