| linalg_matrix_norm {torch} | R Documentation |
Computes a matrix norm.
Description
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 |
ord |
(int, inf, -inf, 'fro', 'nuc', optional): order of norm. Default: |
dim |
(int, Tupleint, optional): dimensions over which to compute
the vector or matrix norm. See above for the behavior when |
keepdim |
(bool, optional): If set to |
dtype |
dtype ( |
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))
}