评价此页

torch.lu_solve#

torch.lu_solve(b, LU_data, LU_pivots, *, out=None) Tensor#

使用 lu_factor() 对 A 进行部分主元 LU 分解,来求解线性方程组 Ax=bAx = b 的 LU 解。

此函数支持 inputfloatdoublecfloatcdouble 数据类型。

警告

torch.lu_solve() 已弃用,推荐使用 torch.linalg.lu_solve()torch.lu_solve() 将在未来的 PyTorch 版本中移除。 X = torch.lu_solve(B, LU, pivots) 应替换为

X = linalg.lu_solve(LU, pivots, B)
参数
  • b (Tensor) – 右侧变量张量,大小为 (,m,k)(*, m, k),其中 * 是零个或多个批处理维度。

  • LU_data (Tensor) – A 的主元 LU 分解,来自 lu_factor(),大小为 (,m,m)(*, m, m),其中 * 是零个或多个批处理维度。

  • LU_pivots (IntTensor) – LU 分解的主元,来自 lu_factor(),大小为 (,m)(*, m),其中 * 是零个或多个批处理维度。 LU_pivots 的批处理维度必须等于 LU_data 的批处理维度。

关键字参数

out (Tensor, optional) – 输出张量。

示例

>>> A = torch.randn(2, 3, 3)
>>> b = torch.randn(2, 3, 1)
>>> LU, pivots = torch.linalg.lu_factor(A)
>>> x = torch.lu_solve(b, LU, pivots)
>>> torch.dist(A @ x, b)
tensor(1.00000e-07 *
       2.8312)