Función torch.linalg.svd de PyTorch


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

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

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

Otras extensiones