當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch slogdet用法及代碼示例


本文簡要介紹python語言中 torch.linalg.slogdet 的用法。

用法:

torch.linalg.slogdet(A, *, out=None)

參數

A(Tensor) -形狀為 (*, n, n) 的張量,其中 * 是零個或多個批次維度。

關鍵字參數

out(tuple,可選的) -兩個張量的輸出元組。如果 None 則忽略。默認值:None

返回

命名元組 (sign, logabsdet)

logabsdet 將始終為實值,即使 A 很複雜。

sign 將具有與 A 相同的 dtype。

計算方陣行列式絕對值的符號和自然對數。

對於複數 A ,它返回行列式模數的角度和自然對數,即行列式的對數極坐標分解。

支持 float、double、cfloat 和 cdouble dtypes 的輸入。還支持批量矩陣,如果 A 是批量矩陣,則輸出具有相同的批量維度。

注意

此函數使用 torch.lu() 計算。當輸入在 CUDA 設備上時,此函數將該設備與 CPU 同步。

注意

行列式可以恢複為 sign * exp(logabsdet)

注意

當矩陣的行列式為零時,它返回 (0, -inf)

例子:

>>> 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.linalg.det(A)
tensor(-0.7576)
>>> torch.linalg.logdet(A)
tensor(nan)
>>> torch.linalg.slogdet(A)
torch.return_types.linalg_slogdet(sign=tensor(-1.), logabsdet=tensor(-0.2776))

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.linalg.slogdet。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。