Fonction torch.lobpcg de PyTorch


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

Le résultat de sortie est:

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

Pytorch torch 参考手册Manuel de référence Pytorch torch

Autres extensions