torch.linalg.svdvals¶
- torch.linalg.svdvals(A, *, driver=None, out=None) Tensor ¶
計算矩陣的奇異值。
支援 float、double、cfloat 和 cdouble 資料類型作為輸入。 也支援批次的矩陣,如果
A
是一批矩陣,則輸出具有相同的批次維度。奇異值會以遞減順序回傳。
注意
此函式等同於 NumPy 的 linalg.svd(A, compute_uv=False)。
注意
當輸入位於 CUDA 裝置上時,此函式會將該裝置與 CPU 同步。
另請參閱
torch.linalg.svd()
計算完整的奇異值分解。- 參數
A (Tensor) – 形狀為 (*, m, n) 的張量,其中 * 是零個或多個批次維度。
- 關鍵字引數
driver (str, optional) – 要使用的 cuSOLVER 方法名稱。此關鍵字引數僅適用於 CUDA 輸入。可用選項為:None、gesvd、gesvdj 和 gesvda。請參閱
torch.linalg.svd()
以取得詳細資訊。預設值:None。out (Tensor, optional) – 輸出張量。如果為 None 則忽略。預設值:None。
- 回傳值
一個實數值的張量,即使
A
是複數。
範例
>>> A = torch.randn(5, 3) >>> S = torch.linalg.svdvals(A) >>> S tensor([2.5139, 2.1087, 1.1066]) >>> torch.dist(S, torch.linalg.svd(A, full_matrices=False).S) tensor(2.4576e-07)