现在位置: 首页 > PyTorch 教程 > 正文

PyTorch torch.linalg.pinv 函数


Pytorch torch 参考手册 Pytorch torch 参考手册

torch.linalg.pinv 是 PyTorch 线性代数模块中用于计算矩阵的 Moore-Penrose 伪逆的函数。对于非方阵或奇异矩阵,伪逆是一个重要的工具。

函数定义

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

参数:

  • A (Tensor): 输入矩阵。
  • rcond (float, 可选): 奇异值截断阈值。
  • hermitian (bool, 可选): 如果为 True,认为矩阵是 Hermitian 矩阵。默认为 False。
  • out (Tensor, 可选): 输出张量。

返回值:

  • torch.Tensor: 返回矩阵的伪逆。

使用示例

实例

import torch

# 创建非方阵
A = torch.tensor([[1.0, 2.0, 3.0],
                  [4.0, 5.0, 6.0]], dtype=torch.float64)

# 计算伪逆
A_pinv = torch.linalg.pinv(A)

print("矩阵 A:")
print(A)
print("n伪逆 A^+:")
print(A_pinv)
print("n验证: A @ A^+ @ A ≈ A")
print(A @ A_pinv @ A)

输出结果为:

矩阵 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 参考手册