評價此頁

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 輸入。可用選項包括:Nonegesvdgesvdjgesvda。有關詳細資訊,請參閱 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)