torch.linalg.matrix_norm¶
- torch.linalg.matrix_norm(A, ord='fro', dim=(- 2, - 1), keepdim=False, *, dtype=None, out=None) Tensor ¶
计算矩阵范数。
如果
A
是复数值,则计算A
.abs() 的范数支持输入 float、double、cfloat 和 cdouble 数据类型。也支持矩阵批次的输入:范数将在由 2-元组
dim
指定的维度上计算,其他维度将被视为批次维度。输出将具有相同的批次维度。ord
定义了所计算的矩阵范数。以下范数被支持:ord
矩阵范数
‘fro’(默认)
Frobenius 范数
‘nuc’
核范数
无穷
求 max(sum(abs(x), dim=1))
-无穷大
求 x 的绝对值之和的最小值(按维度 1)
1
求 x 的绝对值之和的最大值(按维度 0)
-1
求 x 的绝对值之和的最小值(按维度 0)
2
最大的奇异值
-2
最小的奇异值
其中 inf 指的是 float(‘inf’), NumPy 的 inf 对象,或任何等效对象。
- 参数:
A(张量)- 具有两个或更多维度的张量。默认情况下,其形状被解释为 (*, m, n),其中 * 是零个或多个批次维度,但此行为可以通过
dim
进行控制。ord (int, inf, -inf, 'fro', 'nuc', 可选) – 范数的阶。默认:‘fro’
dim (Tuple[int, int], 可选) – 计算范数的维度。默认:(-2, -1)
keepdim (bool, 可选) – 如果设置为 True,则减少的维度在结果中保留为大小为一的维度。默认:False
- 关键字参数:
out(张量,可选)- 输出张量。如果为 None 则忽略。默认: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])