Функция torch.lobpcg в PyTorch


Pytorch torch 参考手册Справочное руководство Pytorch torch

torch.lobpcgЭто функция в PyTorch, используемая для решения задач на собственные значения с помощью метода LOBPCG (Locally Optimal Block Preconditioned Conjugate Gradient). Она особенно подходит для вычисления собственных значений крупномасштабных разреженных матриц.

Определение функции

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): входная матрица (должна быть положительно определённой).
  • B(Tensor, необязательный): матрица масс, используемая для обобщённых задач на собственные значения.
  • X(Tensor, необязательный): начальные приближённые собственные векторы.
  • k(int, необязательный): количество собственных значений для вычисления.
  • n(int, необязательный): размер блока.

Возвращаемое значение:

  • tuple: Возвращает кортеж (собственные значения, собственные векторы).

Пример использования

Пример

import torch

# Создать симметричную положительно определённую матрицу
n = 100
A = torch.randn(n, n)
A = A @ A.T  # Сделать её симметричной положительно определённой

# Начальное приближение
k = 3
X = torch.randn(n, k)

# Решение LOBPCG
собственные значения, собственные векторы = torch.lobpcg(A, X=X, k=k)

print("Форма матрицы:", A.shape)
print("Собственные значения:")
print(eigenvalues)

Результат вывода:

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

Pytorch torch 参考手册Справочное руководство Pytorch torch

Другие расширения