快捷方式

torch.matmul

torch.matmul(input, other, *, out=None) Tensor

兩個張量的矩陣乘積。

行為取決於張量的維度,如下所示

  • 如果兩個張量都是一維的,則傳回點積(純量)。

  • 如果兩個引數都是二維的,則會回傳矩陣與矩陣的乘積。

  • 如果第一個引數是一維的,而第二個引數是二維的,為了進行矩陣相乘,會在第一個引數的維度前加上 1。矩陣相乘後,會移除這個前置的維度。

  • 如果第一個引數是二維的,而第二個引數是一維的,則會回傳矩陣與向量的乘積。

  • 如果兩個引數至少都是一維的,且至少有一個引數是 N 維的(其中 N > 2),則會回傳批次矩陣乘積。如果第一個引數是一維的,為了進行批次矩陣相乘,會在它的維度前加上 1,並在計算後移除。如果第二個引數是一維的,為了進行批次矩陣相乘,會在它的維度後加上 1,並在計算後移除。非矩陣(即批次)維度會進行廣播(因此必須是可以廣播的)。例如,如果 input 是一個 (j×1×n×n)(j \times 1 \times n \times n) 張量,而 other 是一個 (k×n×n)(k \times n \times n) 張量,則 out 將會是一個 (j×k×n×n)(j \times k \times n \times n) 張量。

    請注意,廣播邏輯在判斷輸入是否可以廣播時,只會查看批次維度,而不會查看矩陣維度。例如,如果 input 是一個 (j×1×n×m)(j \times 1 \times n \times m) 張量,而 other 是一個 (k×m×p)(k \times m \times p) 張量,即使最後兩個維度(即矩陣維度)不同,這些輸入也可以進行廣播。out 將會是一個 (j×k×n×p)(j \times k \times n \times p) 張量。

此操作支援帶有稀疏佈局的引數。 特別是,矩陣-矩陣 (兩個引數都是二維的) 支援稀疏引數,其限制與 torch.mm() 相同。

警告

稀疏支援是一個 Beta 功能,某些佈局/dtype/裝置組合可能不受支援,或者可能不支援自動微分。如果您注意到缺少功能,請開啟一個功能請求。

此運算子支援 TensorFloat32

在某些 ROCm 裝置上,當使用 float16 輸入時,此模組將對向後傳播使用不同的精度

注意

此函數的一維點積版本不支援 out 參數。

參數
  • input (Tensor) – 要相乘的第一個張量

  • other (Tensor) – 要相乘的第二個張量

關鍵字參數

out (Tensor, optional) – 輸出張量(可選)。

範例

>>> # vector x vector
>>> tensor1 = torch.randn(3)
>>> tensor2 = torch.randn(3)
>>> torch.matmul(tensor1, tensor2).size()
torch.Size([])
>>> # matrix x vector
>>> tensor1 = torch.randn(3, 4)
>>> tensor2 = torch.randn(4)
>>> torch.matmul(tensor1, tensor2).size()
torch.Size([3])
>>> # batched matrix x broadcasted vector
>>> tensor1 = torch.randn(10, 3, 4)
>>> tensor2 = torch.randn(4)
>>> torch.matmul(tensor1, tensor2).size()
torch.Size([10, 3])
>>> # batched matrix x batched matrix
>>> tensor1 = torch.randn(10, 3, 4)
>>> tensor2 = torch.randn(10, 4, 5)
>>> torch.matmul(tensor1, tensor2).size()
torch.Size([10, 3, 5])
>>> # batched matrix x broadcasted matrix
>>> tensor1 = torch.randn(10, 3, 4)
>>> tensor2 = torch.randn(4, 5)
>>> torch.matmul(tensor1, tensor2).size()
torch.Size([10, 3, 5])

文件

取得 PyTorch 的完整開發者文件

檢視文件

教學

取得針對初學者和進階開發者的深度教學

檢視教學

資源

尋找開發資源並取得問題解答

檢視資源