快捷方式

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 資料型別的輸入。

該函式不一定將多維度的 x 視為一批向量,而是

  • 如果 dim= None,計算範數前將展平 x

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

此行為與 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 可用於以更精確的資料型別執行計算。它在語義上等同於呼叫 linalg.vector_norm(x.to(dtype)),但在某些情況下速度更快。

另請參閱

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

引數
  • x (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) – 輸出張量。如果為 None 則忽略。預設值:None

  • dtype (torch.dtype, optional) – 用於執行累加和返回的型別。如果指定,在執行操作前將 x 轉換為 dtype,並且如果返回的張量是實數的,其型別將為 dtype;如果是複數的,則為其對應的實數型別。dtype 可以是複數型別(如果 x 是複數),否則必須是實數型別。x 應該可以在不縮小精度的情況下轉換為 dtype。預設值:None

返回值

一個實數值張量,即使 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 的全面開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深度教程

檢視教程

資源

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

檢視資源