Shortcuts

torch.linalg.matrix_norm

torch.linalg.matrix_norm(A, ord='fro', dim=(-2, -1), keepdim=False, *, dtype=None, out=None) 张量

计算矩阵范数。

如果 A 是复数值,它计算 A.abs() 的范数

支持浮点数、双精度浮点数、复数浮点数和双精度复数浮点数的输入。 还支持矩阵的批处理:范数将根据由2元组dim指定的维度进行计算,其他维度将被视为批处理维度。输出将具有相同的批处理维度。

ord 定义了计算的矩阵范数。支持以下范数:

ord

矩阵范数

‘fro’(默认)

Frobenius 范数

‘nuc’

核范数

无穷大

max(sum(abs(x), dim=1))

-无穷大

min(sum(abs(x), dim=1))

1

max(sum(abs(x), dim=0))

-1

min(sum(abs(x), dim=0))

2

最大奇异值

-2

最小奇异值

其中 inf 指的是 float(‘inf’)、NumPy 的 inf 对象,或任何等效的对象。

Parameters
  • A (Tensor) – 具有两个或更多维度的张量。默认情况下,其形状被解释为 (*, m, n),其中 * 是零个或多个批次维度,但可以通过使用 dim 来控制此行为。

  • ord (int, inf, -inf, 'fro', 'nuc', 可选) – 范数的阶。默认值: ‘fro’

  • dim (Tuple[int, int], 可选) – 计算范数的维度。默认值:(-2, -1)

  • keepdim (布尔值, 可选) – 如果设置为True,减少的维度将在结果中保留,尺寸为1。默认值:False

Keyword Arguments
  • 输出 (张量, 可选) – 输出张量。如果为,则忽略。默认值:

  • dtype (torch.dtype, 可选) – 如果指定,输入张量在执行操作前会被转换为dtype,并且返回的张量的类型将是dtype。默认值:None

Returns

一个实值张量,即使 A 是复数。

示例:

>>> from torch import linalg as LA
>>> A = torch.arange(9, dtype=torch.float).reshape(3, 3)
>>> A
tensor([[0., 1., 2.],
        [3., 4., 5.],
        [6., 7., 8.]])
>>> LA.matrix_norm(A)
tensor(14.2829)
>>> LA.matrix_norm(A, ord=-1)
tensor(9.)
>>> B = A.expand(2, -1, -1)
>>> B
tensor([[[0., 1., 2.],
        [3., 4., 5.],
        [6., 7., 8.]],

        [[0., 1., 2.],
        [3., 4., 5.],
        [6., 7., 8.]]])
>>> LA.matrix_norm(B)
tensor([14.2829, 14.2829])
>>> LA.matrix_norm(B, dim=(0, 2))
tensor([ 3.1623, 10.0000, 17.2627])
优云智算