快捷方式

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 具有相同的佈局。

警告

稀疏支援是一項測試版功能,某些佈局/資料型別/裝置組合可能不受支援,或者可能沒有自動求導支援。如果您發現缺少功能,請提交功能請求。

此運算子支援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 的全面開發者文件

檢視文件

教程

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

檢視教程

資源

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

檢視資源