校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > pytorch中的matmul與mm,bmm區別說明

pytorch中的matmul與mm,bmm區別說明

熱門標簽:公司電話機器人 廣告地圖標注app 白銀外呼系統 唐山智能外呼系統一般多少錢 陜西金融外呼系統 騰訊外呼線路 海南400電話如何申請 哈爾濱ai外呼系統定制 激戰2地圖標注

pytorch中matmul和mm和bmm區別 matmulmmbmm結論

先看下官網上對這三個函數的介紹。

matmul

mm

bmm

顧名思義, 就是兩個batch矩陣乘法.

結論

從官方文檔可以看出

1、mm只能進行矩陣乘法,也就是輸入的兩個tensor維度只能是( n × m ) (n\times m)(n×m)和( m × p ) (m\times p)(m×p)

2、bmm是兩個三維張量相乘, 兩個輸入tensor維度是( b × n × m ) (b\times n\times m)(b×n×m)和( b × m × p ) (b\times m\times p)(b×m×p), 第一維b代表batch size,輸出為( b × n × p ) (b\times n \times p)(b×n×p)

3、matmul可以進行張量乘法, 輸入可以是高維.

補充:torch中的幾種乘法。torch.mm, torch.mul, torch.matmul

一、點乘

點乘都是broadcast的,可以用torch.mul(a, b)實現,也可以直接用*實現。

>>> a = torch.ones(3,4)
>>> a
tensor([[1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]])
>>> b = torch.Tensor([1,2,3]).reshape((3,1))
>>> b
tensor([[1.],
        [2.],
        [3.]])
>>> torch.mul(a, b)
tensor([[1., 1., 1., 1.],
        [2., 2., 2., 2.],
        [3., 3., 3., 3.]])

當a, b維度不一致時,會自動填充到相同維度相點乘。

二、矩陣乘

矩陣相乘有torch.mm和torch.matmul兩個函數。其中前一個是針對二維矩陣,后一個是高維。當torch.mm用于大于二維時將報錯。

>>> a = torch.ones(3,4)
>>> b = torch.ones(4,2)
>>> torch.mm(a, b)
tensor([[4., 4.],
        [4., 4.],
        [4., 4.]])
>>> a = torch.ones(3,4)
>>> b = torch.ones(5,4,2)
>>> torch.matmul(a, b).shape
torch.Size([5, 3, 2])
>>> a = torch.ones(5,4,2)
>>> b = torch.ones(5,2,3)
>>> torch.matmul(a, b).shape
torch.Size([5, 4, 3])
>>> a = torch.ones(5,4,2)
>>> b = torch.ones(5,2,3)
>>> torch.matmul(b, a).shape
報錯。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • pytorch:torch.mm()和torch.matmul()的使用
  • 基于python及pytorch中乘法的使用詳解
  • 關于tf.matmul() 和tf.multiply() 的區別說明

標簽:惠州 常德 鷹潭 四川 黔西 益陽 上海 黑龍江

巨人網絡通訊聲明:本文標題《pytorch中的matmul與mm,bmm區別說明》,本文關鍵詞  pytorch,中的,matmul,與,bmm,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pytorch中的matmul與mm,bmm區別說明》相關的同類信息!
  • 本頁收集關于pytorch中的matmul與mm,bmm區別說明的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 中江县| 大城县| 保山市| 榕江县| 定南县| 肇州县| 武城县| 西安市| 平塘县| 内丘县| 汉源县| 浦城县| 庄浪县| 南木林县| 木兰县| 全南县| 肃北| 竹山县| 海兴县| 铜山县| 肇庆市| 临澧县| 乃东县| 望都县| 德江县| 丰原市| 安远县| 南木林县| 甘谷县| 苏尼特右旗| 德格县| 临武县| 滨海县| 衢州市| 焉耆| 比如县| 邻水| 西盟| 南康市| 桐乡市| 长岭县|