Fonction torch.svd_lowrank de PyTorch


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

torch.svd_lowrankC'est une fonction de PyTorch pour calculer une approximation SVD de rang faible d'une matrice. Elle utilise des méthodes aléatoires pour calculer une SVD partielle, ce qui est plus rapide qu'une SVD complète.

Définition de fonction

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

Parameters:

  • A(Tensor): matrice d'entrée.
  • q(int, facultatif) : Nombre d'itérations de puissance. La valeur par défaut est 6.
  • niter(int, facultatif) : Nombre d'itérations aléatoires. La valeur par défaut est 2.
  • mexp(int, facultatif) : Exposant de la matrice. La valeur par défaut est 2.

Valeur de retour:

  • tuple: Renvoie un tuple (U, S, V).

Exemple d'utilisation

Exemple

import torch

# Créer une grande matrice
A = torch.randn(100, 50)

# SVD de rang faible (calculer les 10 plus grandes valeurs singulières)
U, S, V = torch.svd_lowrank(A, q=10)

print("Forme de la matrice A :", A.shape)
print("Forme de U :", U.shape)
print("Forme de S des valeurs singulières :", S.shape)
print("Forme de V :", V.shape)
print("nValeurs singulières :")
print(S[:10])

Le résultat de sortie est:

矩阵 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 参考手册Manuel de référence PyTorch torch

Autres extensions