Функция torch.svd_lowrank PyTorch


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

torch.svd_lowrankЭто функция в PyTorch для вычисления SVD-аппроксимации низкого ранга матрицы. Она использует случайные методы для вычисления частичного SVD, что быстрее, чем полное SVD.

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

torch.svd_lowrank(A, q=6, niter=2, mexp=2)

Parameters:

  • A(Tensor): Входная матрица.
  • q(int, optional): Число степенных итераций. По умолчанию 6.
  • niter(int, optional): Число случайных итераций. По умолчанию 2.
  • mexp(int, optional): Показатель степени матрицы. По умолчанию 2.

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

  • tuple: Возвращает кортеж (U, S, V).

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

Пример

import torch

# Создать большую матрицу
A = torch.randn(100, 50)

# SVD низкого ранга (вычислить 10 наибольших сингулярных значений)
U, S, V = torch.svd_lowrank(A, q=10)

print("Форма матрицы A:", A.shape)
print("Форма U:", U.shape)
print("Форма сингулярных значений S:", S.shape)
print("Форма V:", V.shape)
print("nСингулярные значения:")
print(S[:10])

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

矩阵 A 形状: torch.Size([100, 50])
U 形状: torch.Size([100, 10])
奇异值 S 形状: torch.Size([10])
V 形状: torch.Size([50, 10])
奇异值:
tensor([14.6526, 14.0891, 13.5830, 13.0966, 12.7677, 12.4337, 12.1510,
        11.8361, 11.5309, 11.3064])

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

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