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


Python PyTorch lstsq用法及代码示例


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

用法:

torch.lstsq(input, A, *, out=None)

参数

关键字参数

out(tuple,可选的) -可选的目标张量

返回

一个命名元组(解决方案,QR)包含:

  • 解(张量):最小二乘解

  • QR(Tensor):QR分解的细节

返回类型

(TensorTensor)

计算大小为 的满秩矩阵 和大小为 的矩阵 的最小二乘和最小范数问题的解。

如果 lstsq() 解决最小二乘问题:

如果 lstsq() 解决了 least-norm 问题:

返回的张量 具有形状 的前 行包含解决方案。如果 ,则每列中解的残差平方和由该列剩余 行中元素的平方和给出。

警告

torch.lstsq() 已弃用,取而代之的是 torch.linalg.lstsq() ,并将在未来的 PyTorch 版本中删除。 torch.linalg.lstsq() 具有相反的参数,并且不会在返回的元组中返回 QR 分解(它返回有关问题的其他信息)。 torch.lstsq() 中返回的 solution 存储案例 m > n 中最后 m - n 列中解的残差。在 torch.linalg.lstsq() 中,残差位于返回的命名元组的字段 ‘residuals’ 中。

将解决方案解压缩为 X = torch.lstsq(B, A).solution[:A.size(1)] 应替换为

X = torch.linalg.lstsq(A, B).solution

注意

GPU 不支持 的情况。

注意

无论输入矩阵的步幅如何,返回的矩阵将始终被转置。也就是说,他们将有步幅 (1, m) 而不是 (m, 1)

例子:

>>> A = torch.tensor([[1., 1, 1],
...                   [2, 3, 4],
...                   [3, 5, 2],
...                   [4, 2, 5],
...                   [5, 4, 3]])
>>> B = torch.tensor([[-10., -3],
...                   [ 12, 14],
...                   [ 14, 12],
...                   [ 16, 16],
...                   [ 18, 16]])
>>> X, _ = torch.lstsq(B, A)
>>> X
tensor([[  2.0000,   1.0000],
        [  1.0000,   1.0000],
        [  1.0000,   2.0000],
        [ 10.9635,   4.8501],
        [  8.9332,   5.2418]])

相关用法


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