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)
其他 int 或 float
sum(abs(x)^{ord})^{(1 / ord)}
其中 inf 指的是 float('inf'),NumPy 的 inf 物件,或任何等效物件。
dtype
可用於以更精確的 dtype 執行計算。 它在語義上等同於呼叫linalg.vector_norm(x.to(dtype))
,但在某些情況下速度更快。另請參閱
torch.linalg.matrix_norm()
計算矩陣範數。- 參數
- 關鍵字引數
out (Tensor, optional) – 輸出 tensor。如果 None 則忽略。預設值:None。
dtype (
torch.dtype
, optional) – 用於執行累加和回傳值的型別。 如果指定,則在執行運算之前,x
會被轉換為dtype
,並且如果為實數,則回傳的 tensor 的型別將為dtype
,如果為複數,則為其對應的實數型別。dtype
在x
為複數時可以是複數,否則必須是實數。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)