快捷方式

torch.addmm

torch.addmm(input, mat1, mat2, *, beta=1, alpha=1, out=None) Tensor

執行矩陣 mat1mat2 的矩陣乘法。矩陣 input 會加到最終結果中。

如果 mat1 是一個 (n×m)(n \times m) 張量,mat2 是一個 (m×p)(m \times p) 張量,那麼 input 必須與 (n×p)(n \times p) 張量 可廣播,並且 out 將會是一個 (n×p)(n \times p) 張量。

alphabeta 分別是 mat1mat2 之間矩陣向量積以及加入的矩陣 input 的縮放因子。

out=β input+α (mat1i@mat2i)\text{out} = \beta\ \text{input} + \alpha\ (\text{mat1}_i \mathbin{@} \text{mat2}_i)

如果 beta 為 0,則 input 將被忽略,並且其中的 naninf 不會被傳播。

對於 FloatTensorDoubleTensor 類型的輸入,參數 betaalpha 必須是實數,否則它們應該是整數。

此操作支援具有稀疏佈局的參數。 如果 input 是稀疏的,則結果將具有相同的佈局,如果提供了 out,則它必須具有與 input 相同的佈局。

警告

稀疏支持是一個 beta 功能,某些佈局/dtype/裝置組合可能不被支持,或者可能沒有 autograd 支持。如果您發現缺少功能,請開啟一個功能請求。

此運算符支持 TensorFloat32

在某些 ROCm 設備上,當使用 float16 輸入時,此模塊將使用 不同的精度 進行反向傳播。

參數
  • input (Tensor) – 要相加的矩陣

  • mat1 (Tensor) – 要進行矩陣相乘的第一個矩陣

  • mat2 (Tensor) – 要進行矩陣相乘的第二個矩陣

關鍵字參數
  • beta (Number, optional) – input 的乘數 (β\beta)

  • alpha (Number, optional) – mat1@mat2mat1 @ mat2 的乘數 (α\alpha)

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

範例

>>> M = torch.randn(2, 3)
>>> mat1 = torch.randn(2, 3)
>>> mat2 = torch.randn(3, 3)
>>> torch.addmm(M, mat1, mat2)
tensor([[-4.8716,  1.4671, -1.3746],
        [ 0.7573, -3.9555, -2.8681]])

文件

取得 PyTorch 的完整開發者文件

查看文件

教學

取得適合初學者和高級開發者的深入教學

查看教學

資源

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

查看資源