torch.linalg 矩阵范数
- torch.linalg.matrix_norm(A, ord='fro', dim=(-2, -1), keepdim=False, *, dtype=None, out=None) → Tensor
-
计算矩阵的范数。
如果
A
是复数类型,它会计算A
的范数(即 .abs())支持浮点数、双精度浮点数、复数浮点数和复数双精度浮点数的数据类型作为输入。还支持矩阵批次:范数将在由 2 元组
dim
指定的维度上进行计算,而其他维度将被视为批处理维度。输出将保留相同的批处理维度。ord
定义了要计算的矩阵范数。支持的范数包括:ord
矩阵范数
“fro”(默认值)
Frobenius 范数
“nuc”
核范数
inf 由于这里的修改目标是为了使句子更自然、更符合中文习惯,但给定的内容仅为一个标签“inf”,在不改变其意义和结构的前提下,保持原样最为合适。因此直接返回原文: infmax(sum(abs(x), dim=1))
-∞
min(sum(abs(x), dim=1))
1
max(sum(abs(x), dim=0))
-1
min(sum(abs(x), dim=0)) (表示先对x取绝对值,然后沿维度0求和,最后取最小值)
2
最大的奇异值
-2
最小奇异值
其中inf指的是float('inf')、NumPy的inf对象,或者任何等效的对象。
- 参数
- 关键字参数
-
-
out (Tensor, optional) – 输出张量。默认为None,若未指定则忽略。
-
dtype (
torch.dtype
, 可选) – 如果指定了,输入张量在执行操作前会被转换为dtype
类型,并且返回的张量类型也将是dtype
。默认值: None
-
- 返回值
-
这是一个实值张量,即便在
A
为复数的情况下也成立。
示例:
>>> from torch import linalg as LA >>> A = torch.arange(9, dtype=torch.float).reshape(3, 3) >>> A tensor([[0., 1., 2.], [3., 4., 5.], [6., 7., 8.]]) >>> LA.matrix_norm(A) tensor(14.2829) >>> LA.matrix_norm(A, ord=-1) tensor(9.) >>> B = A.expand(2, -1, -1) >>> B tensor([[[0., 1., 2.], [3., 4., 5.], [6., 7., 8.]], [[0., 1., 2.], [3., 4., 5.], [6., 7., 8.]]]) >>> LA.matrix_norm(B) tensor([14.2829, 14.2829]) >>> LA.matrix_norm(B, dim=(0, 2)) tensor([ 3.1623, 10.0000, 17.2627])