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


Python PyTorch cond用法及代码示例


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

用法:

torch.linalg.cond(A, p=None, *, out=None) → Tensor

参数

  • A(Tensor) -形状为 (*, m, n) 的张量,其中 *(2, -2)p 的零个或多个批量维度,并且形状为 (*, n, n) ,其中每个矩阵对于 (‘fro’, ‘nuc’, inf, -inf, 1, -1) 中的 p 都是可逆的。

  • p(int,inf,-inf,'fro','nuc',可选的) - 在计算中使用的矩阵范数的类型(见上文)。默认:None

关键字参数

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

返回

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

抛出

RuntimeError - 如果 p(‘fro’, ‘nuc’, inf, -inf, 1, -1) 之一且 A 矩阵或批次中的任何矩阵 A 不是方阵或可逆的。

计算矩阵关于矩阵范数的条件数。

\mathbb{K} \mathbb{R} 或者\mathbb{C} , 这条件编号 \kappa 矩阵的A \in \mathbb{K}^{n \times n} 定义为

A 的条件数测量线性系统AX = B 相对于矩阵范数的数值稳定性。

支持 float、double、cfloat 和 cdouble dtypes 的输入。还支持批量矩阵,如果 A 是批量矩阵,则输出具有相同的批量维度。

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

p

矩阵范数

None

2 -norm(最大奇异值)

‘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 对象或任何等效对象。

对于 p(‘fro’, ‘nuc’, inf, -inf, 1, -1) 之一,此函数使用 torch.linalg.norm() torch.linalg.inv() 。因此,在这种情况下,矩阵(或批次中的每个矩阵)A 必须是方阵且可逆的。

对于 (2, -2) 中的 p,可以根据奇异值 计算此函数

在这些情况下,它是使用 torch.linalg.svd() 计算的。对于这些规范,矩阵(或批次中的每个矩阵)A 可以具有任何形状。

注意

当输入在 CUDA 设备上时,如果 p(‘fro’, ‘nuc’, inf, -inf, 1, -1) 之一,则此函数将该设备与 CPU 同步。

例子:

>>> A = torch.randn(3, 4, 4, dtype=torch.complex64)
>>> torch.linalg.cond(A)
>>> A = torch.tensor([[1., 0, -1], [0, 1, 0], [1, 0, 1]])
>>> torch.linalg.cond(A)
tensor([1.4142])
>>> torch.linalg.cond(A, 'fro')
tensor(3.1623)
>>> torch.linalg.cond(A, 'nuc')
tensor(9.2426)
>>> torch.linalg.cond(A, float('inf'))
tensor(2.)
>>> torch.linalg.cond(A, float('-inf'))
tensor(1.)
>>> torch.linalg.cond(A, 1)
tensor(2.)
>>> torch.linalg.cond(A, -1)
tensor(1.)
>>> torch.linalg.cond(A, 2)
tensor([1.4142])
>>> torch.linalg.cond(A, -2)
tensor([0.7071])

>>> A = torch.randn(2, 3, 3)
>>> torch.linalg.cond(A)
tensor([[9.5917],
        [3.2538]])
>>> A = torch.randn(2, 3, 3, dtype=torch.complex64)
>>> torch.linalg.cond(A)
tensor([[4.6245],
        [4.5671]])

相关用法


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