PyTorch torch.svd_lowrank-Funktion


Pytorch torch 参考手册PyTorch torch-Referenzhandbuch

torch.svd_lowrankEs ist eine Funktion in PyTorch zur Berechnung einer SVD mit Niedrigrang-Approximation einer Matrix. Sie verwendet Zufallsmethoden, um eine partielle SVD zu berechnen, was schneller ist als eine vollständige SVD.

Funktionsdefinition

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

Parameters:

  • A(Tensor): Eingabematrix.
  • q(int, optional): Anzahl der Potenziterationen. Standard ist 6.
  • niter(int, optional): Anzahl der Zufallsiterationen. Standard ist 2.
  • mexp(int, optional): Matrixexponent. Standard ist 2.

Rückgabewert:

  • tuple: Gibt ein Tupel (U, S, V) zurück.

Anwendungsbeispiel

Beispiel

import torch

# Eine große Matrix erstellen
A = torch.randn(100, 50)

# SVD mit niedrigem Rang (die obersten 10 Singulärwerte berechnen)
U, S, V = torch.svd_lowrank(A, q=10)

print("Form von Matrix A:", A.shape)
print("U-Form:", U.shape)
print("Form der Singulärwerte S:", S.shape)
print("V-Form:", V.shape)
print("nSingulärwerte:")
print(S[:10])

Das Ausgabeergebnis ist:

矩阵 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-Referenzhandbuch

Andere Erweiterungen