當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch norm用法及代碼示例


本文簡要介紹python語言中 torch.norm 的用法。

用法:

torch.norm(input, p='fro', dim=None, keepdim=False, out=None, dtype=None)

參數

  • input(Tensor) -輸入張量。它的數據類型必須是浮點數或複數類型。對於複雜輸入,使用每個元素的絕對值計算範數。如果輸入是複數並且既沒有指定 dtype 也沒有指定 out,則結果的數據類型將是相應的浮點類型(例如,如果 input 是 complexfloat,則為 float)。

  • p(int,float,inf,-inf,'fro','nuc',可選的) -

    規範的順序。默認值:'fro' 可以計算以下範數:

    ord

    矩陣範數

    向量範數

    “來回”

    弗羅貝尼烏斯範數

    -

    ‘nuc’

    核規範

    -

    Number

    -

    總和(abs(x)**ord)**(1./ord)

    向量範數可以跨任意維數計算。 input對應的維度被展平為一維,在展平的維度上計算範數。

    Frobenius norm 在所有情況下都產生與p=2 相同的結果,除非dim 是三個或更多暗淡的列表,在這種情況下,Frobenius norm 會引發錯誤。

    核範數隻能在兩個維度上精確計算。

  • dim(int,python的元組:ints,python:ints 列表,可選的) -指定 input 的哪個或多個維度來計算範數。如果 dimNone ,則將在 input 的所有維度上計算範數。如果p指示的範數類型不支持指定的維數,則會出現錯誤。

  • keepdim(bool,可選的) -輸出張量是否保留dim。如果 dim = Noneout = None 則忽略。默認值:False

  • out(Tensor,可選的) -輸出張量。如果 dim = Noneout = None 則忽略。

  • dtype(torch.dtype, 可選的) -返回張量的所需數據類型。如果指定,則在執行操作時輸入張量將轉換為dtype。默認值:無。

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

警告

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

在計算向量範數時使用 torch.linalg.norm() torch.linalg.vector_norm() ,在計算矩陣範數時使用 torch.linalg.matrix_norm() 。但是請注意,這些函數的簽名與 torch.norm 的簽名略有不同。

注意

盡管p='fro' 支持任意數量的維度,但 Frobenius 範數的真正數學定義僅適用於恰好具有二維的張量。 torch.linalg.norm() ord='fro' 與數學定義一致,因為它隻能應用於兩個維度。

例子:

>>> 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.org大神的英文原創作品 torch.norm。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。