PyTorch torch.linalg.pinv Funktion


Pytorch torch 参考手册PyTorch torch Referenzhandbuch

torch.linalg.pinvEs ist eine Funktion im PyTorch-Modul für lineare Algebra, die verwendet wird, um die Moore-Penrose-Pseudoinverse einer Matrix zu berechnen. Für nichtquadratische oder singuläre Matrizen ist die Pseudoinverse ein wichtiges Werkzeug.

Funktionsdefinition

torch.linalg.pinv(A, rcond=None, hermitian=False, out=None)

Parameters:

  • A(Tensor): Die Eingabematrix.
  • rcond(float, optional): Schwellenwert für die Singulärwert-Abschneidung.
  • hermitian(bool, optional): Wenn True, wird angenommen, dass die Matrix Hermitesch ist. Standardwert ist False.
  • out(Tensor, optional): Der Ausgabe-Tensor.

Rückgabewert:

  • torch.Tensor: Gibt die Pseudoinverse der Matrix zurück.

Anwendungsbeispiel

Beispiel

import torch

# Erstelle eine nichtquadratische Matrix
A = torch.tensor([[1.0, 2.0, 3.0],
                  [4.0, 5.0, 6.0]], dtype=torch.float64)

# Berechne die Pseudoinverse
A_pinv = torch.linalg.pinv(A)

print("Matrix A:")
print(A)
print("nPseudoinverse A^+:")
print(A_pinv)
print("nÜberprüfung: A @ A^+ @ A ≈ A")
print(A @ A_pinv @ A)

Das Ausgabeergebnis ist:

矩阵 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)

Pytorch torch 参考手册PyTorch torch Referenzhandbuch

Andere Erweiterungen