本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。