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

torch.linalg.vector_norm(x, ord=2, dim=None, keepdim=False, *, dtype=None, out=None) → Tensor

Computes a vector norm.

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

Supports input of float, double, cfloat and cdouble dtypes.

This function does not necessarily treat multidimensional x as a batch of vectors, instead:

This behavior is for consistency with torch.linalg.norm().

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

ord vector norm
2 (default) 2-norm (see below)
inf max(abs(x))
-inf min(abs(x))
0 sum(x != 0)
other int or float sum(abs(x)^{ord})^{(1 / ord)}

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

dtype may be used to perform the computation in a more precise dtype. It is semantically equivalent to calling linalg.vector_norm(x.to(dtype))but it is faster in some cases.

Parameters

Keyword Arguments

Returns

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

Examples:

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)