torch.logdet

torch.logdet(input) Tensor

计算方阵或多个方阵批次的对数行列式。

如果输入的行列式为零,则返回-inf;如果有负行列式,则返回NaN

注意

在反向传播过程中,如果input不可逆,则内部会使用SVD结果来计算logdet()。在这种情况下,当input没有不同的奇异值时,通过logdet()的二次反向传播将变得不稳定。详情请参阅torch.linalg.svd()

参见

torch.linalg.slogdet() 计算实数(对应复数)方阵行列式的符号(对应角度)及其绝对值的自然对数。

参数

input (Tensor) – 输入张量的大小为 (*, n, n),其中 * 表示零个或多个批次维度。

示例:

>>> A = torch.randn(3, 3)
>>> torch.det(A)
tensor(0.2611)
>>> torch.logdet(A)
tensor(-1.3430)
>>> A
tensor([[[ 0.9254, -0.6213],
         [-0.5787,  1.6843]],

        [[ 0.3242, -0.9665],
         [ 0.4539, -0.0887]],

        [[ 1.1336, -0.4025],
         [-0.7089,  0.9032]]])
>>> A.det()
tensor([1.1990, 0.4099, 0.7386])
>>> A.det().log()
tensor([ 0.1815, -0.8917, -0.3031])
本页目录