torch.linalg.matrix_norm — PyTorch 2.7 documentation (original) (raw)

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

Computes a matrix norm.

If A is complex valued, it computes the norm of A.abs()

Support input of float, double, cfloat and cdouble dtypes. Also supports batches of matrices: the norm will be computed over the dimensions specified by the 2-tuple dim and the other dimensions will be treated as batch dimensions. The output will have the same batch dimensions.

ord defines the matrix norm that is computed. The following norms are supported:

ord matrix norm
‘fro’ (default) Frobenius norm
‘nuc’ nuclear norm
inf max(sum(abs(x), dim=1))
-inf min(sum(abs(x), dim=1))
1 max(sum(abs(x), dim=0))
-1 min(sum(abs(x), dim=0))
2 largest singular value
-2 smallest singular value

where inf refers to float(‘inf’), NumPy’s inf object, or any equivalent object.

Parameters

Keyword Arguments

Returns

A real-valued tensor, even when A is complex.

Examples:

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])