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])