捷徑

torch.linalg.vector_norm

torch.linalg.vector_norm(x, ord=2, dim=None, keepdim=False, *, dtype=None, out=None) Tensor

計算向量範數。

如果 x 是複數值,它會計算 x 的範數 .abs()

支援 float、double、cfloat 和 cdouble 等資料類型 (dtypes) 的輸入。

此函數不一定將多維 x 視為向量批次,而是

  • 如果 dim= None,則在計算範數之前,x 會被展平 (flattened)。

  • 如果 dim 是一個 int 或一個 tuple,則範數將在這些維度上計算,而其他維度將被視為批次維度。

此行為是為了與 torch.linalg.norm() 保持一致。

ord 定義了要計算的向量範數。 支援以下範數:

ord

向量範數

2 (預設)

2-範數 (見下文)

inf

max(abs(x))

-inf

min(abs(x))

0

sum(x != 0)

其他 intfloat

sum(abs(x)^{ord})^{(1 / ord)}

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

dtype 可用於以更精確的 dtype 執行計算。 它在語義上等同於呼叫 linalg.vector_norm(x.to(dtype)),但在某些情況下速度更快。

另請參閱

torch.linalg.matrix_norm() 計算矩陣範數。

參數
  • x (Tensor) – tensor,預設情況下會被展平,但可以使用 dim 控制此行為。(注意:關鍵字引數 input 也可以用作 x 的別名。)

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

  • dim (int, Tuple[int], optional) – 計算範數的維度。 有關 dim= None 時的行為,請參閱上文。預設值:None

  • keepdim (bool, optional) – 如果設定為 True,則縮減的維度會在結果中保留為大小為一的維度。預設值:False

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

  • dtype (torch.dtype, optional) – 用於執行累加和回傳值的型別。 如果指定,則在執行運算之前,x 會被轉換為 dtype,並且如果為實數,則回傳的 tensor 的型別將為 dtype,如果為複數,則為其對應的實數型別。dtypex 為複數時可以是複數,否則必須是實數。 x 應該可以無損地轉換為 dtype。預設值:None

回傳

一個實數值的 tensor,即使 x 是複數。

範例

>>> from torch import linalg as LA
>>> a = torch.arange(9, dtype=torch.float) - 4
>>> a
tensor([-4., -3., -2., -1.,  0.,  1.,  2.,  3.,  4.])
>>> B = a.reshape((3, 3))
>>> B
tensor([[-4., -3., -2.],
        [-1.,  0.,  1.],
        [ 2.,  3.,  4.]])
>>> LA.vector_norm(a, ord=3.5)
tensor(5.4345)
>>> LA.vector_norm(B, ord=3.5)
tensor(5.4345)

文件

存取 PyTorch 的全面開發人員文件

檢視文件

教學課程

獲取針對初學者和高級開發人員的深入教學課程

檢視教學課程

資源

查找開發資源並獲得問題解答

檢視資源