評價此頁

torch.chain_matmul#

torch.chain_matmul(matrices, out=None)[原始碼]#

返回 NN 個 2 維張量的矩陣乘積。此乘積使用矩陣鏈排序演算法進行高效計算,該演算法選擇運算次數成本最低的計算順序([CLRS])。請注意,由於這是一個計算乘積的函式,因此 NN 必須大於等於 2;如果等於 2,則返回簡單的矩陣-矩陣乘積。如果 NN 為 1,則這是一個無操作——返回原始矩陣。

警告

torch.chain_matmul() 已棄用,將在將來的 PyTorch 版本中刪除。請改用 torch.linalg.multi_dot(),它接受一個包含兩個或多個張量的列表,而不是多個引數。

引數
  • matrices (Tensors...) – 要確定乘積的 2 個或更多 2 維張量的序列。

  • out (Tensor, optional) – 輸出張量。如果 out = None,則忽略。

返回

如果第 ithi^{th} 個張量的維度為 pi×pi+1p_{i} \times p_{i + 1}, 則乘積的維度為 p1×pN+1p_{1} \times p_{N + 1}.

返回型別

張量

示例

>>> a = torch.randn(3, 4)
>>> b = torch.randn(4, 5)
>>> c = torch.randn(5, 6)
>>> d = torch.randn(6, 7)
>>> # will raise a deprecation warning
>>> torch.chain_matmul(a, b, c, d)
tensor([[ -2.3375,  -3.9790,  -4.1119,  -6.6577,   9.5609, -11.5095,  -3.2614],
        [ 21.4038,   3.3378,  -8.4982,  -5.2457, -10.2561,  -2.4684,   2.7163],
        [ -0.9647,  -5.8917,  -2.3213,  -5.2284,  12.8615, -12.2816,  -2.5095]])