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. Usage linalg_matrix_norm( A, ord = "fro", dim = c(-2, -1), keepdim = FALSE, dtype = NULL ) Arguments A (Tensor): tensor with two or more dimensions. By default its shape is interpreted as (*, m, n) where * is zero or more batch dimensions, but this behavior can be controlled using dim. ord (int, inf, -inf, 'fro', 'nuc', optional): order of norm. Default: 'fro' 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 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_power(), linalg_matrix_rank(), linalg_multi_dot(), linalg_norm(), linalg_pinv(), linalg_qr(), linalg_slogdet(), linalg_solve_triangular(), 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())$reshape(c(3, 3))
linalg_matrix_norm(a)
linalg_matrix_norm(a, ord = -1)
b <- a\$expand(c(2, -1, -1))
linalg_matrix_norm(b)
linalg_matrix_norm(b, dim = c(1, 3))
}
#> torch_tensor
#>   3.1623
#>  10.0000
#>  17.2627
#> [ CPUFloatType{3} ]