Función PyTorch torch.svd_lowrank
Manual de referencia de Pytorch torch
torch.svd_lowrankEs una función en PyTorch que se utiliza para calcular la SVD de rango bajo aproximada de una matriz. Utiliza métodos aleatorios para calcular una SVD parcial, siendo más rápida que la SVD completa.
Definición de la función
torch.svd_lowrank(A, q=6, niter=2, mexp=2)
Parámetros:
A(Tensor): Matriz de entrada.q(int, opcional): Número de iteraciones de potencia. El valor predeterminado es 6.niter(int, opcional): Número de iteraciones aleatorias. El valor predeterminado es 2.mexp(int, opcional): Exponente de la matriz. El valor predeterminado es 2.
Valor de retorno:
tuple: Devuelve una tupla de (U, S, V).
Ejemplo de uso
Ejemplo
import torch
# Crear una matriz grande
A = torch.randn(100, 50)
# SVD de rango bajo (calcular los primeros 10 valores singulares)
U, S, V = torch.svd_lowrank(A, q=10)
print("Forma de la matriz A:", A.shape)
print("Forma de U:", U.shape)
print("Forma de los valores singulares S:", S.shape)
print("Forma de V:", V.shape)
print("nValores singulares:")
print(S[:10])
# Crear una matriz grande
A = torch.randn(100, 50)
# SVD de rango bajo (calcular los primeros 10 valores singulares)
U, S, V = torch.svd_lowrank(A, q=10)
print("Forma de la matriz A:", A.shape)
print("Forma de U:", U.shape)
print("Forma de los valores singulares S:", S.shape)
print("Forma de V:", V.shape)
print("nValores singulares:")
print(S[:10])
El resultado de salida es:
矩阵 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])
Otras extensiones