PyTorch torch.linalg.eigh 函数
torch.linalg.eigh 是 PyTorch 线性代数模块中用于计算 Hermitian 矩阵(对称或复数共轭矩阵)特征值分解的函数。相比普通特征值分解,它更高效且数值更稳定。
函数定义
torch.linalg.eigh(A, UPLO='L', out=None)
参数:
A(Tensor): 输入 Hermitian 矩阵。UPLO(str, 可选): 'L' 表示下三角,'U' 表示上三角。默认为 'L'。out(tuple, 可选): 输出元组。
返回值:
tuple: 返回 (特征值, 特征向量) 的元组。
使用示例
实例
import torch
# 创建对称矩阵
A = torch.tensor([[2.0, 1.0],
[1.0, 2.0]])
# Hermitian 特征值分解
eigenvalues, eigenvectors = torch.linalg.eigh(A)
print("矩阵 A:")
print(A)
print("n特征值:")
print(eigenvalues)
print("n特征向量:")
print(eigenvectors)
# 创建对称矩阵
A = torch.tensor([[2.0, 1.0],
[1.0, 2.0]])
# Hermitian 特征值分解
eigenvalues, eigenvectors = torch.linalg.eigh(A)
print("矩阵 A:")
print(A)
print("n特征值:")
print(eigenvalues)
print("n特征向量:")
print(eigenvectors)
输出结果为:
矩阵 A:
tensor([[2., 1.],
[1., 2.]])
特征值:
tensor([1., 3.])
特征向量:
tensor([[-0.7071, 0.7071],
[ 0.7071, 0.7071]])

Pytorch torch 参考手册