本文简要介绍python语言中 torch.symeig
的用法。
用法:
torch.symeig(input, eigenvectors=False, upper=True, *, out=None)
out(tuple,可选的) -(Tensor, Tensor) 的输出元组
一个命名元组(特征值,特征向量)包含
特征值(Tensor): 形状
.以升序排列的特征值。特征向量(Tensor): 形状
.如果eigenvectors=False
,它是一个空张量。否则,该张量包含input
.
此函数返回实数对称或复数 Hermitian 矩阵
input
或其批次的特征值和特征向量,由命名元组(特征值,特征向量)表示。此函数计算
input
的所有特征值(和向量),使得 。布尔参数
eigenvectors
定义特征向量和特征值或仅特征值的计算。如果是
False
,则仅计算特征值。如果是True
,则计算特征值和特征向量。由于输入矩阵
input
应该是对称的或厄米特矩阵,因此默认情况下只使用上三角部分。如果
upper
是False
,则使用下三角部分。警告
torch.symeig()
已弃用,取而代之的是torch.linalg.eigh()
,并将在未来的 PyTorch 版本中删除。默认行为已从默认使用矩阵的上三角部分更改为使用下三角部分。L, _ = torch.symeig(A, upper=upper)
应替换为UPLO = "U" if upper else "L" L = torch.linalg.eigvalsh(A, UPLO=UPLO)
L, V = torch.symeig(A, eigenvectors=True, upper=upper)
应该替换为UPLO = "U" if upper else "L" L, V = torch.linalg.eigh(A, UPLO=UPLO)
注意
特征值按升序返回。如果
input
是一批矩阵,则以升序返回该批中每个矩阵的特征值。注意
无论原始步幅如何,返回的矩阵
V
都将被转置,即步幅为V.contiguous().transpose(-1, -2).stride()
。警告
在通过输出后退时需要格外小心。这种操作只有在所有特征值都不同时才是稳定的,并且 越小越不稳定。
例子:
>>> a = torch.randn(5, 5) >>> a = a + a.t() # To make a symmetric >>> a tensor([[-5.7827, 4.4559, -0.2344, -1.7123, -1.8330], [ 4.4559, 1.4250, -2.8636, -3.2100, -0.1798], [-0.2344, -2.8636, 1.7112, -5.5785, 7.1988], [-1.7123, -3.2100, -5.5785, -2.6227, 3.1036], [-1.8330, -0.1798, 7.1988, 3.1036, -5.1453]]) >>> e, v = torch.symeig(a, eigenvectors=True) >>> e tensor([-13.7012, -7.7497, -2.3163, 5.2477, 8.1050]) >>> v tensor([[ 0.1643, 0.9034, -0.0291, 0.3508, 0.1817], [-0.2417, -0.3071, -0.5081, 0.6534, 0.4026], [-0.5176, 0.1223, -0.0220, 0.3295, -0.7798], [-0.4850, 0.2695, -0.5773, -0.5840, 0.1337], [ 0.6415, -0.0447, -0.6381, -0.0193, -0.4230]]) >>> a_big = torch.randn(5, 2, 2) >>> a_big = a_big + a_big.transpose(-2, -1) # To make a_big symmetric >>> e, v = a_big.symeig(eigenvectors=True) >>> torch.allclose(torch.matmul(v, torch.matmul(e.diag_embed(), v.transpose(-2, -1))), a_big) True
参数:
关键字参数:
返回:
返回类型:
相关用法
- Python PyTorch symbolic_trace用法及代码示例
- Python PyTorch saved_tensors_hooks用法及代码示例
- Python PyTorch sqrt用法及代码示例
- Python PyTorch skippable用法及代码示例
- Python PyTorch squeeze用法及代码示例
- Python PyTorch square用法及代码示例
- Python PyTorch save_on_cpu用法及代码示例
- Python PyTorch scatter_object_list用法及代码示例
- Python PyTorch skip_init用法及代码示例
- Python PyTorch simple_space_split用法及代码示例
- Python PyTorch sum用法及代码示例
- Python PyTorch sub用法及代码示例
- Python PyTorch sparse_csr_tensor用法及代码示例
- Python PyTorch sentencepiece_numericalizer用法及代码示例
- Python PyTorch sinh用法及代码示例
- Python PyTorch sinc用法及代码示例
- Python PyTorch std_mean用法及代码示例
- Python PyTorch spectral_norm用法及代码示例
- Python PyTorch slogdet用法及代码示例
- Python PyTorch shutdown用法及代码示例
- Python PyTorch sgn用法及代码示例
- Python PyTorch set_flush_denormal用法及代码示例
- Python PyTorch set_default_dtype用法及代码示例
- Python PyTorch signbit用法及代码示例
- Python PyTorch sort用法及代码示例
注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.symeig。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。