torch.lu_unpack¶
- torch.lu_unpack(LU_data, LU_pivots, unpack_data=True, unpack_pivots=True, *, out=None)¶
将由
lu_factor()
返回的LU分解解包为 P, L, U 矩阵。另请参阅
lu()
返回LU分解的矩阵。其梯度公式比先进行lu_factor()
再进行lu_unpack()
更高效。- Parameters
- Keyword Arguments
out (tuple, 可选) – 包含三个张量的输出元组。如果为None则忽略。
- Returns
一个命名的元组
(P, L, U)
示例:
>>> A = torch.randn(2, 3, 3) >>> LU, pivots = torch.linalg.lu_factor(A) >>> P, L, U = torch.lu_unpack(LU, pivots) >>> # 我们可以从因式分解中恢复A >>> A_ = P @ L @ U >>> torch.allclose(A, A_) True >>> # 矩形矩阵的LU分解: >>> A = torch.randn(2, 3, 2) >>> LU, pivots = torch.linalg.lu_factor(A) >>> P, L, U = torch.lu_unpack(LU, pivots) >>> # P, L, U与linalg.lu返回的相同 >>> P_, L_, U_ = torch.linalg.lu(A) >>> torch.allclose(P, P_) and torch.allclose(L, L_) and torch.allclose(U, U_) True