Fonction PyTorch torch.linalg.pinv
Manuel de référence Pytorch torch
torch.linalg.pinvC'est une fonction du module d'algèbre linéaire de PyTorch utilisée pour calculer le pseudo-inverse de Moore-Penrose d'une matrice. Pour les matrices non carrées ou singulières, le pseudo-inverse est un outil important.
Définition de fonction
torch.linalg.pinv(A, rcond=None, hermitian=False, out=None)
Parameters:
A(Tensor) : La matrice d'entrée.rcond(float, optionnel) : Seuil de troncature des valeurs singulières.hermitian(bool, optionnel) : Si True, la matrice est supposée hermitienne. La valeur par défaut est False.out(Tensor, optionnel) : Le tenseur de sortie.
Valeur de retour:
torch.Tensor: Renvoie le pseudo-inverse de la matrice.
Exemple d'utilisation
Exemple
import torch
# Créer une matrice non carrée
A = torch.tensor([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0]], dtype=torch.float64)
# Calculer le pseudo-inverse
A_pinv = torch.linalg.pinv(A)
print("Matrice A :")
print(A)
print("nPseudo-inverse A^+:")
print(A_pinv)
print("nVérification: A @ A^+ @ A ≈ A")
print(A @ A_pinv @ A)
# Créer une matrice non carrée
A = torch.tensor([[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0]], dtype=torch.float64)
# Calculer le pseudo-inverse
A_pinv = torch.linalg.pinv(A)
print("Matrice A :")
print(A)
print("nPseudo-inverse A^+:")
print(A_pinv)
print("nVérification: A @ A^+ @ A ≈ A")
print(A @ A_pinv @ A)
Le résultat de sortie est:
矩阵 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)
Autres extensions