快捷鍵

torch.norm

torch.norm(input, p='fro', dim=None, keepdim=False, out=None, dtype=None)[原始碼][原始碼]

返回給定張量的矩陣範數或向量範數。

警告

torch.norm 已棄用,並可能在未來的 PyTorch 版本中移除。其文件和行為可能不正確,且不再積極維護。

當計算向量範數時,請使用 torch.linalg.vector_norm(),當計算矩陣範數時,請使用 torch.linalg.matrix_norm()。若要尋找具有類似行為的函式,請參閱 torch.linalg.norm()。然而請注意,這些函式的簽章與 torch.norm 的簽章略有不同。

參數
  • input (Tensor) – 輸入張量。其資料類型必須是浮點數或複數類型。對於複數輸入,範數是使用每個元素的絕對值計算的。如果輸入是複數,且未指定 dtypeout,則結果的資料類型將是對應的浮點數類型(例如,如果 input 是 complexfloat,則為 float)。

  • p (int, float, inf, -inf, 'fro', 'nuc', optional) –

    範數的階數。預設值:'fro' 可以計算以下範數

    ord

    矩陣範數

    向量範數

    ’fro’

    Frobenius 範數

    ‘nuc’

    核範數

    數值

    sum(abs(x)**ord)**(1./ord)

    向量範數可以跨任意數量的維度計算。input 的相應維度會被展平成一個維度,並且在展平的維度上計算範數。

    在所有情況下,Frobenius 範數產生的結果與 p=2 相同,除非 dim 是三個或更多維度的列表,在這種情況下,Frobenius 範數會拋出錯誤。

    核範數只能跨越兩個維度進行計算。

  • dim (int, tuple of ints, list of ints, optional) – 指定計算範數的 input 的哪個或哪些維度。如果 dimNone,則將跨 input 的所有維度計算範數。如果由 p 指示的範數類型不支持指定的維度數,則會發生錯誤。

  • keepdim (bool, optional) – 輸出張量是否保留 dim。如果 dim = Noneout = None,則忽略。預設值:False

  • out (Tensor, optional) – 輸出張量。如果 dim = Noneout = None,則忽略。

  • dtype (torch.dtype, optional) – 返回的張量的所需資料類型。如果指定,則在執行運算時,輸入張量會轉換為 dtype。預設值:None。

注意

即使 p='fro' 支援任意數量的維度,Frobenius 範數的真正數學定義僅適用於具有恰好兩個維度的張量。帶有 ord='fro'torch.linalg.matrix_norm() 符合數學定義,因為它只能應用於恰好兩個維度。

範例

>>> import torch
>>> a = torch.arange(9, dtype= torch.float) - 4
>>> b = a.reshape((3, 3))
>>> torch.norm(a)
tensor(7.7460)
>>> torch.norm(b)
tensor(7.7460)
>>> torch.norm(a, float('inf'))
tensor(4.)
>>> torch.norm(b, float('inf'))
tensor(4.)
>>> c = torch.tensor([[ 1, 2, 3], [-1, 1, 4]] , dtype=torch.float)
>>> torch.norm(c, dim=0)
tensor([1.4142, 2.2361, 5.0000])
>>> torch.norm(c, dim=1)
tensor([3.7417, 4.2426])
>>> torch.norm(c, p=1, dim=1)
tensor([6., 6.])
>>> d = torch.arange(8, dtype=torch.float).reshape(2, 2, 2)
>>> torch.norm(d, dim=(1, 2))
tensor([ 3.7417, 11.2250])
>>> torch.norm(d[0, :, :]), torch.norm(d[1, :, :])
(tensor(3.7417), tensor(11.2250))

文件

取得 PyTorch 完整的開發者文件

檢視文件

教學課程

取得適用於初學者和高級開發人員的深入教學課程

檢視教學課程

資源

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

檢視資源