torch.slogdet¶
-
torch.
slogdet
(input) -> (Tensor, Tensor)¶ Calculates the sign and log absolute value of the determinant(s) of a square matrix or batches of square matrices.
Note
If
input
has zero determinant, this returns(0, -inf)
.Note
Backward through
slogdet()
internally uses SVD results wheninput
is not invertible. In this case, double backward throughslogdet()
will be unstable in wheninput
doesn’t have distinct singular values. Seesvd()
for details.- Parameters
input (Tensor) – the input tensor of size
(*, n, n)
where*
is zero or more batch dimensions.- Returns
A namedtuple (sign, logabsdet) containing the sign of the determinant, and the log value of the absolute determinant.
Example:
>>> A = torch.randn(3, 3) >>> A tensor([[ 0.0032, -0.2239, -1.1219], [-0.6690, 0.1161, 0.4053], [-1.6218, -0.9273, -0.0082]]) >>> torch.det(A) tensor(-0.7576) >>> torch.logdet(A) tensor(nan) >>> torch.slogdet(A) torch.return_types.slogdet(sign=tensor(-1.), logabsdet=tensor(-0.2776))