當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。