pytorch
dfc7fa03 - lu_backward: more numerically stable and with complex support. (#53994)

Commit
4 years ago
lu_backward: more numerically stable and with complex support. (#53994) Summary: As per title. Numerical stability increased by replacing inverses with solutions to systems of linear triangular equations. Unblocks computing `torch.det` for FULL-rank inputs of complex dtypes via the LU decomposition once https://github.com/pytorch/pytorch/pull/48125/files is merged: ``` LU, pivots = input.lu() P, L, U = torch.lu_unpack(LU, pivots) det_input = P.det() * torch.prod(U.diagonal(0, -1, -2), dim=-1) # P is not differentiable, so we are fine even if it is complex. ``` Unfortunately, since `lu_backward` is implemented as `autograd.Function`, we cannot support both autograd and scripting at the moment. The solution would be to move all the lu-related methods to ATen, see https://github.com/pytorch/pytorch/issues/53364. Resolves https://github.com/pytorch/pytorch/issues/52891 TODOs: * extend lu_backward for tall/wide matrices of full rank. * move lu-related functionality to ATen and make it differentiable. * handle rank-deficient inputs. Pull Request resolved: https://github.com/pytorch/pytorch/pull/53994 Reviewed By: pbelevich Differential Revision: D27188529 Pulled By: anjali411 fbshipit-source-id: 8e053b240413dbf074904dce01cd564583d1f064
Author
Parents
Loading