当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch matrix_norm用法及代码示例


本文简要介绍python语言中 torch.linalg.matrix_norm 的用法。

用法:

torch.linalg.matrix_norm(A, ord='fro', dim=(- 2, - 1), keepdim=False, *, dtype=None, out=None) → Tensor

参数

  • A(Tensor) -具有两个或多个维度的张量。默认情况下,它的形状被解释为 (*, m, n) 其中 * 是零个或多个批处理维度,但可以使用 dim 控制此行为。

  • ord(int,inf,-inf,'fro','nuc',可选的) - 规范的顺序。默认:‘fro’

  • dim(元组[int,int],可选的) - 计算范数的维度。默认:(-2, -1)

  • keepdim(bool,可选的) -如果设置为 True ,则减少的维度将作为大小为 1 的维度保留在结果中。默认值:False

关键字参数

  • out(Tensor,可选的) -输出张量。如果 None 则忽略。默认值:None

  • dtype(torch.dtype, 可选的) -如果指定,则在执行操作之前输入张量将转换为 dtype ,并且返回的张量的类型将为 dtype 。默认值:None

返回

一个实值张量,即使 A 是复数。

计算矩阵范数。

如果 A 是复数值,则计算 A .abs() 的范数

支持 float、double、cfloat 和 cdouble 数据类型的输入。还支持批量矩阵:范数将在 2 元组 dim 指定的维度上计算,其他维度将被视为批量维度。输出将具有相同的批次尺寸。

ord 定义计算的矩阵范数。支持以下规范:

ord

矩阵范数

‘fro’(默认)

弗罗贝尼乌斯范数

‘nuc’

核规范

inf

max(sum(abs(x), dim=1))

-inf

min(sum(abs(x), dim=1))

1

max(sum(abs(x), dim=0))

-1

min(sum(abs(x), dim=0))

2

最大奇异值

-2

最小奇异值

其中 inf 指的是 float(‘inf’) 、NumPy 的 inf 对象或任何等效对象。

例子:

>>> 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])

相关用法


注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torch.linalg.matrix_norm。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。