快捷方式

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 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源