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是一個 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可用於以更精確的資料型別執行計算。它在語義上等同於呼叫linalg.vector_norm(x.to(dtype)),但在某些情況下速度更快。另請參閱
torch.linalg.matrix_norm()計算矩陣範數。- 引數
- 關鍵字引數
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)