快捷方式

torch.linalg.matrix_power

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

計算一個方陣的 n 次冪,其中 n 是整數。

支援 float, double, cfloat 和 cdouble 資料型別的輸入。也支援矩陣批次,如果 A 是一個矩陣批次,則輸出具有相同的批次維度。

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

注意

如果可能,對於將矩陣左乘負次冪的情況,請考慮使用 torch.linalg.solve(),例如當 n> 0

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

如果可能,總是優先使用 solve(),因為它比顯式計算 AnA^{-n} 更快、數值更穩定。

另請參閱

torch.linalg.solve() 使用數值穩定的演算法計算 A.inverse() @ B

引數
  • A (Tensor) – 形狀為 (*, m, m) 的張量,其中 * 表示零個或多個批次維度。

  • n (int) – 指數。

關鍵字引數

out (Tensor, 可選) – 輸出張量。如果為 None 則忽略。預設值:None

丟擲異常

RuntimeError – 如果 n< 0 且矩陣 A 或矩陣批次 A 中的任何矩陣不可逆。

示例

>>> 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 的全面開發者文件

檢視文件

教程

獲取針對初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源