• 文档 >
  • torch >
  • torch.norm
快捷键

torch.norm

torch.norm(input, p='fro', dim=None, keepdim=False, out=None, dtype=None)[source][source]

返回给定张量的矩阵范数或向量范数。

警告

torch.norm 已弃用,可能在未来的 PyTorch 版本中删除。其文档和行为可能不正确,并且不再积极维护。

计算向量范数时使用 torch.linalg.vector_norm() ,计算矩阵范数时使用 torch.linalg.matrix_norm() 。对于与该函数行为相似的功能,请参阅 torch.linalg.norm() 。请注意,这些函数的签名与 torch.norm 的签名略有不同。

参数:
  • 输入 (Tensor) – 输入张量。其数据类型必须是浮点型或复数类型。对于复数输入,范数计算使用每个元素的绝对值。如果输入是复数且未指定 dtypeout ,则结果的类型将是相应的浮点类型(例如,如果 input 是 complexfloat,则为 float)。

  • p (int, float, inf, -inf, 'fro', 'nuc', 可选) –

    规范的顺序。默认: 'fro' 以下规范可以计算:

    ord

    矩阵范数

    向量范数

    ‘fro’

    Frobenius 范数

    ‘nuc’

    核范数

    数字

    sum(abs(x)**ord)**(1./ord)

    向量的范数可以在任意维度上计算。 input 的对应维度将被展平为一维,并在展平的维度上计算范数。

    Frobenius 范数在所有情况下都产生与 p=2 相同的结果,除非 dim 是一个包含三个或更多维度的列表,在这种情况下 Frobenius 范数会抛出错误。

    核范数只能在恰好两个维度上计算。

  • dim(int,int 元组,int 列表,可选)- 指定计算范数的 input 的维度或维度组合。如果 dimNone ,则范数将在 input 的所有维度上计算。如果 p 指示的范数类型不支持指定的维度数,将发生错误。

  • keepdim(bool,可选)- 输出张量是否保留 dim 。如果 dim = Noneout = None ,则忽略。默认: False

  • out(张量,可选)- 输出张量。如果 dim = Noneout = None ,则忽略。

  • dtype( torch.dtype ,可选)- 返回张量的期望数据类型。如果指定,则在执行操作时将输入张量转换为 dtype 。默认:None。

注意

尽管支持任意数量的维度,但 Frobenius 范数的真正数学定义仅适用于具有恰好两个维度的张量。 torch.linalg.matrix_norm()ord='fro' 与数学定义一致,因为它只能应用于恰好两个维度。

示例:

>>> import torch
>>> a = torch.arange(9, dtype= torch.float) - 4
>>> b = a.reshape((3, 3))
>>> torch.norm(a)
tensor(7.7460)
>>> torch.norm(b)
tensor(7.7460)
>>> torch.norm(a, float('inf'))
tensor(4.)
>>> torch.norm(b, float('inf'))
tensor(4.)
>>> c = torch.tensor([[ 1, 2, 3], [-1, 1, 4]] , dtype=torch.float)
>>> torch.norm(c, dim=0)
tensor([1.4142, 2.2361, 5.0000])
>>> torch.norm(c, dim=1)
tensor([3.7417, 4.2426])
>>> torch.norm(c, p=1, dim=1)
tensor([6., 6.])
>>> d = torch.arange(8, dtype=torch.float).reshape(2, 2, 2)
>>> torch.norm(d, dim=(1, 2))
tensor([ 3.7417, 11.2250])
>>> torch.norm(d[0, :, :]), torch.norm(d[1, :, :])
(tensor(3.7417), tensor(11.2250))

© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,并使用 Read the Docs 提供的主题。

文档

PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源