快捷鍵

torch.linalg.matrix_norm

torch.linalg.matrix_norm(A, ord='fro', dim=(-2, -1), keepdim=False, *, dtype=None, out=None) Tensor

計算矩陣範數。

如果 A 是複數值,則計算 A.abs() 的範數

支援 float、double、cfloat 和 cdouble 等資料類型作為輸入。也支援矩陣批次處理:範數會針對由二元組 dim 指定的維度計算,而其他維度將被視為批次維度。輸出將具有相同的批次維度。

ord 定義計算的矩陣範數。支援以下範數:

ord

矩陣範數

‘fro’ (預設)

Frobenius 範數

‘nuc’

核範數

inf

max(sum(abs(x), dim=1))

-inf

min(sum(abs(x), dim=1))

1

max(sum(abs(x), dim=0))

-1

min(sum(abs(x), dim=0))

2

最大奇異值

-2

最小奇異值

其中 inf 指的是 float('inf')、NumPy 的 inf 物件或任何等效物件。

參數
  • A (Tensor) – 具有兩個或更多維度的張量。預設情況下,其形狀被解釋為 (*, m, n),其中 * 是零個或多個批次維度,但此行為可以使用 dim 控制。

  • ord (int, inf, -inf, 'fro', 'nuc', optional) – 範數的階數。預設值:‘fro’

  • dim (Tuple[int, int], optional) – 計算範數的維度。預設值:(-2, -1)

  • keepdim (bool, optional) – 如果設定為 True,則簡化的維度將在結果中保留為大小為 1 的維度。預設值:False

關鍵字參數
  • out (Tensor, optional) – 輸出張量。如果為 None,則忽略。預設值:None

  • dtype (torch.dtype, optional) – 如果指定,則輸入張量在執行操作之前會被轉換為 dtype,並且返回的張量的類型將為 dtype。預設值:None

返回值

一個實數值的張量,即使 A 是複數。

範例

>>> from torch import linalg as LA
>>> A = torch.arange(9, dtype=torch.float).reshape(3, 3)
>>> A
tensor([[0., 1., 2.],
        [3., 4., 5.],
        [6., 7., 8.]])
>>> LA.matrix_norm(A)
tensor(14.2829)
>>> LA.matrix_norm(A, ord=-1)
tensor(9.)
>>> B = A.expand(2, -1, -1)
>>> B
tensor([[[0., 1., 2.],
        [3., 4., 5.],
        [6., 7., 8.]],

        [[0., 1., 2.],
        [3., 4., 5.],
        [6., 7., 8.]]])
>>> LA.matrix_norm(B)
tensor([14.2829, 14.2829])
>>> LA.matrix_norm(B, dim=(0, 2))
tensor([ 3.1623, 10.0000, 17.2627])

文件

存取 PyTorch 的完整開發人員文件

檢視文件

教學

取得針對初學者和進階開發人員的深入教學

檢視教學

資源

尋找開發資源並獲得您的問題解答

檢視資源