torch.linalg.vector_norm¶
- torch.linalg.vector_norm(x, ord=2, dim=None, keepdim=False, *, dtype=None, out=None) 张量 ¶
计算向量范数。
如果
x
是复数值,它计算x
.abs() 的范数支持float、double、cfloat和cdouble数据类型的输入。
此函数不一定将多维
x
视为向量的批次,而是:如果
dim
= None,x
将在计算范数之前被展平。如果
dim
是一个 int 或一个 tuple,范数将在这几个维度上计算,而其他维度将被视为批次维度。
此行为与
torch.linalg.norm()
保持一致。ord
定义了计算的向量范数。支持以下范数:ord
向量范数
2(默认)
2-范数(见下文)
无穷大
最大值(绝对值(x))
-无穷大
最小值(绝对值(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()
计算矩阵范数。- Parameters
- Keyword Arguments
输出 (张量, 可选) – 输出张量。如果为无,则忽略。默认值:无。
dtype (
torch.dtype
, 可选) – 用于执行累加和返回的类型。 如果指定,x
在执行操作之前会被转换为dtype
, 并且返回的张量的类型将是dtype
(如果是实数)或其对应的实数类型(如果是复数)。dtype
可以是复数,如果x
是复数,否则它必须是实数。x
应该可以在不缩小的情况下转换为dtype
。默认值:None
- Returns
一个实值张量,即使
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)