Función PyTorch torch.svd_lowrank


Pytorch torch 参考手册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])

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])

Pytorch torch 参考手册Manual de referencia de Pytorch torch

Otras extensiones