Función PyTorch torch.linalg.pinv
Manual de referencia de Pytorch torch
torch.linalg.pinvEs una función del módulo de álgebra lineal de PyTorch que se utiliza para calcular la pseudo-inversa de Moore-Penrose de una matriz. Para matrices no cuadradas o singulares, la pseudo-inversa es una herramienta importante.
Definición de la función
torch.linalg.pinv(A, rcond=None, hermitian=False, out=None)
Parámetros:
A(Tensor): La matriz de entrada.rcond(float, opcional): Umbral de truncamiento de valores singulares.hermitian(bool, opcional): Si es True, se considera que la matriz es hermitiana. El valor predeterminado es False.out(Tensor, opcional): Tensor de salida.
Valor de retorno:
torch.Tensor: Devuelve la pseudo-inversa de la matriz.
Ejemplo de uso
Ejemplo
import torch
# Crear una matriz no cuadrada
A = torch.tensor([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0]], dtype=torch.float64)
# Calcular la pseudo-inversa
A_pinv = torch.linalg.pinv(A)
print("Matriz A:")
print(A)
print("npseudo-inversa A^+:")
print(A_pinv)
print("nVerificación: A @ A^+ @ A ≈ A")
print(A @ A_pinv @ A)
# Crear una matriz no cuadrada
A = torch.tensor([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0]], dtype=torch.float64)
# Calcular la pseudo-inversa
A_pinv = torch.linalg.pinv(A)
print("Matriz A:")
print(A)
print("npseudo-inversa A^+:")
print(A_pinv)
print("nVerificación: A @ A^+ @ A ≈ A")
print(A @ A_pinv @ A)
El resultado de salida es:
矩阵 A:
tensor([[1., 2., 3.],
[4., 5., 6.]], dtype=torch.float64)
伪逆 A^+:
tensor([[-0.9444, 0.4444],
[-0.2778, 0.2778],
[ 0.3889, 0.1111]], dtype=float64)
验证: A @ A^+ @ A ≈ A
tensor([[ 1.0000e+00, 2.0000e+00, 3.0000e+00],
[ 4.0000e+00, 5.0000e+00, 6.0000e+00]], dtype=float64)
Otras extensiones