Función torch.linalg.svd de PyTorch
Manual de referencia de PyTorch torch
torch.linalg.svdEs la función del módulo de álgebra lineal de PyTorch que se utiliza para calcular la descomposición en valores singulares (SVD) de una matriz. La SVD descompone la matriz en A = U * diag(S) * V^T.
Definición de la función
torch.linalg.svd(A, full_matrices=False, out=None)
Parámetros:
A(Tensor): Matriz de entrada.full_matrices(bool, opcional): si es True, devuelve las matrices U y V completas. El valor predeterminado es False.out(tuple, opcional): tupla de salida.
Valor de retorno:
tuple: devuelve una tupla (U, S, Vh), donde Vh es la transpuesta de V.
Ejemplo de uso
Ejemplo
import torch
# Crear la matriz
A = torch.tensor([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
[7.0, 8.0, 9.0],
[10.0, 11.0, 12.0]])
# Descomposición SVD
U, S, Vh = torch.linalg.svd(A)
print("Matriz A:")
print(A)
print("nForma de U:", U.shape)
print("Valores singulares S:", S)
print("Forma de Vh:", Vh.shape)
print("nVerificación: U @ diag(S) @ Vh =")
print(U @ torch.diag(S) @ Vh)
# Crear la matriz
A = torch.tensor([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
[7.0, 8.0, 9.0],
[10.0, 11.0, 12.0]])
# Descomposición SVD
U, S, Vh = torch.linalg.svd(A)
print("Matriz A:")
print(A)
print("nForma de U:", U.shape)
print("Valores singulares S:", S)
print("Forma de Vh:", Vh.shape)
print("nVerificación: U @ diag(S) @ Vh =")
print(U @ torch.diag(S) @ Vh)
El resultado de salida es:
矩阵 A:
tensor([[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.],
[10., 11., 12.]])
U 形状: torch.Size([4, 4])
奇异值 S: tensor([25.4627, 1.2907, 0.0000])
Vh 形状: torch.Size([3, 3])
验证: U @ diag(S) @ Vh =
tensor([[ 1.0000, 2.0000, 3.0000],
[ 4.0000, 5.0000, 6.0000],
[ 7.0000, 8.0000, 9.0000],
[10.0000, 11.0000, 12.0000]])
Otras extensiones