評價此頁

torch.logdet#

torch.logdet(input) Tensor#

計算方陣或方陣批次的對數行列式。

如果輸入的行列式為零,則返回 -inf,如果行列式為負,則返回 NaN

注意

input 不可逆時,logdet() 的反向傳播內部使用 SVD 結果。在這種情況下,當 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])