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


Python PyTorch matrix_power用法及代碼示例


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

用法:

torch.linalg.matrix_power(A, n, *, out=None) → Tensor

參數

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

  • n(int) - index 。

關鍵字參數

out(Tensor,可選的) -輸出張量。如果 None 則忽略。默認值:None

拋出

RuntimeError - 如果 n < 0 和矩陣 A 或這批矩陣 A 中的任何矩陣不可逆。

計算整數 n 的方陣的 n 次冪。

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

如果 n = 0 ,則返回與 A 形狀相同的單位矩陣(或批次)。如果 n 為負數,則返回每個矩陣的逆矩陣(如果可逆)的 abs(n) 次冪。

注意

如果可能,請考慮使用 torch.linalg.solve() 將左側矩陣乘以負冪,例如 n > 0

matrix_power(torch.linalg.solve(A, B), n) == matrix_power(A, -n)  @ B

在可能的情況下,總是首選使用 solve() ,因為它比顯式計算 更快且數值更穩定。

例子:

>>> A = torch.randn(3, 3)
>>> torch.linalg.matrix_power(A, 0)
tensor([[1., 0., 0.],
        [0., 1., 0.],
        [0., 0., 1.]])
>>> torch.linalg.matrix_power(A, 3)
tensor([[ 1.0756,  0.4980,  0.0100],
        [-1.6617,  1.4994, -1.9980],
        [-0.4509,  0.2731,  0.8001]])
>>> torch.linalg.matrix_power(A.expand(2, -1, -1), -2)
tensor([[[ 0.2640,  0.4571, -0.5511],
        [-1.0163,  0.3491, -1.5292],
        [-0.4899,  0.0822,  0.2773]],
        [[ 0.2640,  0.4571, -0.5511],
        [-1.0163,  0.3491, -1.5292],
        [-0.4899,  0.0822,  0.2773]]])

相關用法


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