Rate this Page

torch.lu_unpack#

torch.lu_unpack(LU_data,LU_pivots,unpack_data=True,unpack_pivots=True,*,out=None)#

Unpacks the LU decomposition returned bylu_factor() into theP, L, U matrices.

See also

lu() returns the matrices from the LU decomposition. Its gradient formula is more efficientthan that of doinglu_factor() followed bylu_unpack().

Parameters
  • LU_data (Tensor) – the packed LU factorization data

  • LU_pivots (Tensor) – the packed LU factorization pivots

  • unpack_data (bool) – flag indicating if the data should be unpacked.IfFalse, then the returnedL andU are empty tensors.Default:True

  • unpack_pivots (bool) – flag indicating if the pivots should be unpacked into a permutation matrixP.IfFalse, then the returnedP is an empty tensor.Default:True

Keyword Arguments

out (tuple,optional) – output tuple of three tensors. Ignored ifNone.

Returns

A namedtuple(P,L,U)

Examples:

>>>A=torch.randn(2,3,3)>>>LU,pivots=torch.linalg.lu_factor(A)>>>P,L,U=torch.lu_unpack(LU,pivots)>>># We can recover A from the factorization>>>A_=P@L@U>>>torch.allclose(A,A_)True>>># LU factorization of a rectangular matrix:>>>A=torch.randn(2,3,2)>>>LU,pivots=torch.linalg.lu_factor(A)>>>P,L,U=torch.lu_unpack(LU,pivots)>>># P, L, U are the same as returned by linalg.lu>>>P_,L_,U_=torch.linalg.lu(A)>>>torch.allclose(P,P_)andtorch.allclose(L,L_)andtorch.allclose(U,U_)True