Table of Contents
Shortcuts

# torch.norm

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

  Returns the matrix norm or vector norm of a given tensor.

  Warning

  torch.norm is deprecated and may be removed in a future PyTorch release. Its documentation and behavior may be incorrect, and it is no longer actively maintained.

  Use `torch.linalg.vector_norm()` when computing vector norms and `torch.linalg.matrix_norm()` when computing matrix norms. For a function with a similar behavior as this one see `torch.linalg.norm()`. Note, however, the signature for these functions is slightly different than the signature for `torch.norm`.

  Parameters:

    - input (Tensor) – The input tensor. Its data type must be either a floating point or complex type. For complex inputs, the norm is calculated using the absolute value of each element. If the input is complex and neither `dtype` nor `out` is specified, the result’s data type will be the corresponding floating point type (e.g. float if `input` is complexfloat).

    - p (int, float, inf, -inf, 'fro', 'nuc', optional) –

      the order of norm. Default: `'fro'` The following norms can be calculated:

      ord | matrix norm | vector norm
      --- | --- | ---
      ’fro’ | Frobenius norm | –
      ‘nuc’ | nuclear norm | –
      Number | – | sum(abs(x)**ord)**(1./ord)

      The vector norm can be calculated across any number of dimensions. The corresponding dimensions of `input` are flattened into one dimension, and the norm is calculated on the flattened dimension.

      Frobenius norm produces the same result as `p=2` in all cases except when `dim` is a list of three or more dims, in which case Frobenius norm throws an error.

      Nuclear norm can only be calculated across exactly two dimensions.

    - dim (int, tuple of ints, list of ints, optional) – Specifies which dimension or dimensions of `input` to calculate the norm across. If `dim` is `None`, the norm will be calculated across all dimensions of `input`. If the norm type indicated by `p` does not support the specified number of dimensions, an error will occur.

    - keepdim (bool, optional) – whether the output tensors have `dim` retained or not. Ignored if `dim` = `None` and `out` = `None`. Default: `False`

    - out (Tensor, optional) – the output tensor. Ignored if `dim` = `None` and `out` = `None`.

    - dtype (`torch.dtype`, optional) – the desired data type of returned tensor. If specified, the input tensor is casted to `dtype` while performing the operation. Default: None.

  Note

  Even though `p='fro'` supports any number of dimensions, the true mathematical definition of Frobenius norm only applies to tensors with exactly two dimensions. `torch.linalg.matrix_norm()` with `ord='fro'` aligns with the mathematical definition, since it can only be applied across exactly two dimensions.

  Example:

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

## Docs

Access comprehensive developer documentation for PyTorch

View Docs

## Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

## Resources

Find development resources and get your questions answered

View Resources

To analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available controls: Cookies Policy.