PyTorch torch.svd_lowrank-Funktion
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])
# 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])
Andere Erweiterungen