linalg_norm: Computes a vector or matrix norm.

View source: R/linalg.R

linalg_normR Documentation

Computes a vector or matrix norm.

Description

If A is complex valued, it computes the norm of A$abs() Supports input of float, double, cfloat and cdouble dtypes. Whether this function computes a vector or matrix norm is determined as follows:

Usage

linalg_norm(A, ord = NULL, dim = NULL, keepdim = FALSE, dtype = NULL)

Arguments

A

(Tensor): tensor of shape ⁠(*, n)⁠ or ⁠(*, m, n)⁠ where * is zero or more batch dimensions

ord

(int, float, inf, -inf, 'fro', 'nuc', optional): order of norm. Default: NULL

dim

(int, Tupleint, optional): dimensions over which to compute the vector or matrix norm. See above for the behavior when dim=NULL. Default: NULL

keepdim

(bool, optional): If set to TRUE, the reduced dimensions are retained in the result as dimensions with size one. Default: FALSE

dtype

dtype (torch_dtype, optional): If specified, the input tensor is cast to dtype before performing the operation, and the returned tensor's type will be dtype. Default: NULL

Details

  • If dim is an int, the vector norm will be computed.

  • If dim is a 2-tuple, the matrix norm will be computed.

  • If dim=NULL and ord=NULL, A will be flattened to 1D and the 2-norm of the resulting vector will be computed.

  • If dim=NULL and ord!=NULL, A must be 1D or 2D.

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

ord norm for matrices norm for vectors
NULL (default) Frobenius norm 2-norm (see below)
"fro" Frobenius norm – not supported –
"nuc" nuclear norm – not supported –
Inf max(sum(abs(x), dim=2)) max(abs(x))
-Inf min(sum(abs(x), dim=2)) min(abs(x))
0 – not supported – sum(x != 0)
1 max(sum(abs(x), dim=1)) as below
-1 min(sum(abs(x), dim=1)) as below
2 largest singular value as below
-2 smallest singular value as below
other int or float – not supported – sum(abs(x)^{ord})^{(1 / ord)}

See Also

Other linalg: linalg_cholesky_ex(), linalg_cholesky(), linalg_det(), linalg_eigh(), linalg_eigvalsh(), linalg_eigvals(), linalg_eig(), linalg_householder_product(), linalg_inv_ex(), linalg_inv(), linalg_lstsq(), linalg_matrix_norm(), linalg_matrix_power(), linalg_matrix_rank(), linalg_multi_dot(), linalg_pinv(), linalg_qr(), linalg_slogdet(), linalg_solve(), linalg_svdvals(), linalg_svd(), linalg_tensorinv(), linalg_tensorsolve(), linalg_vector_norm()

Examples

if (torch_is_installed()) {
a <- torch_arange(0, 8, dtype = torch_float()) - 4
a
b <- a$reshape(c(3, 3))
b

linalg_norm(a)
linalg_norm(b)
}

torch documentation built on June 7, 2023, 6:19 p.m.