亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PyTorch中torch.matmul()函數(shù)常見用法總結(jié)

 更新時間:2023年04月13日 10:21:18   作者:wendy_ya  
torch.matmul()也是一種類似于矩陣相乘操作的tensor連乘操作。但是它可以利用python中的廣播機制,處理一些維度不同的tensor結(jié)構(gòu)進行相乘操作,這篇文章主要介紹了PyTorch中torch.matmul()函數(shù)用法總結(jié),需要的朋友可以參考下

一、函數(shù)介紹

pytorch中兩個張量的乘法可以分為兩種:

  • 兩個張量對應元素相乘,在PyTorch中可以通過torch.mul函數(shù)(或*運算符)實現(xiàn);
  • 兩個張量矩陣相乘,在PyTorch中可以通過torch.matmul函數(shù)實現(xiàn);

torch.matmul(input, other) → Tensor
計算兩個張量input和other的矩陣乘積
【注意】:matmul函數(shù)沒有強制規(guī)定維度和大小,可以用利用廣播機制進行不同維度的相乘操作。

二、常見用法

torch.matmul()也是一種類似于矩陣相乘操作的tensor連乘操作。但是它可以利用python中的廣播機制,處理一些維度不同的tensor結(jié)構(gòu)進行相乘操作。這也是該函數(shù)與torch.bmm()區(qū)別所在。

2.1 兩個一維向量的乘積運算

若兩個tensor都是一維的,則返回兩個向量的點積運算結(jié)果:

import torch
x = torch.tensor([1,2])
y = torch.tensor([3,4])
print(x,y)
print(torch.matmul(x,y),torch.matmul(x,y).size())

運行結(jié)果:

tensor([1, 2]) tensor([3, 4])
tensor(11) torch.Size([])

2.2 兩個二維矩陣的乘積運算

若兩個tensor都是二維的,則返回兩個矩陣的矩陣相乘結(jié)果:

import torch
x = torch.tensor([[1,2],[3,4]])
y = torch.tensor([[5,6,7],[8,9,10]])
print(torch.matmul(x,y),torch.matmul(x,y).size())

運行結(jié)果:

tensor([[21, 24, 27],[47, 54, 61]]) torch.Size([2, 3])

2.3 一個一維向量和一個二維矩陣的乘積運算

若input為一維,other為二維,則先將input的一維向量擴充到二維(維數(shù)前面插入長度為1的新維度),然后進行矩陣乘積,得到結(jié)果后再將此維度去掉,得到的與input的維度相同。

import torch
x = torch.tensor([1,2])
y = torch.tensor([[5,6,7],[8,9,10]])
print(torch.matmul(x,y),torch.matmul(x,y).size())

運行結(jié)果:

tensor([21, 24, 27]) torch.Size([3])

【分析】:首先將x維度從(2)擴充為(,2),然后將x(,2) 與y(2,3)進行相乘,得到(,3),最后去掉一維部分,得到(3)

2.4 一個二維矩陣和一個一維向量的乘積運算

若input為二維,other為一維,則先將other的一維向量擴充到二維(維數(shù)后面插入長度為1的新維度),然后進行矩陣乘積,得到結(jié)果后再將此維度去掉,得到的與other的維度相同。

import torch
x = torch.tensor([[1,2,3],[4,5,6]])
y = torch.tensor([7,8,9])
print(torch.matmul(x,y),'\n',torch.matmul(x,y).size())

運行結(jié)果:

tensor([ 50, 122])
torch.Size([2])

【分析】:首先y維度從(3)擴充為(3,),然后將x(2,3)與x(2,)進行相乘,得到(2,),最后去掉一維部分,得到(2)

【總結(jié)】:2.3和2.4基本類似,唯一不同的是2.3中一維向量和二維矩陣的乘積運算需要在一維向量前面插入長度為1的新維度(x為一維向量,y為二維矩陣);2.4中二維矩陣和一維向量的乘積運算需要在一維向量后面插入長度為1的新維度(x為二維矩陣,y為一維向量)。

2.5 其他

其他的暫時用不上,有需要的可以自行查閱相關(guān)資料~

參考:https://cloud.tencent.com/developer/article/1802317

到此這篇關(guān)于PyTorch中torch.matmul()函數(shù)用法總結(jié)的文章就介紹到這了,更多相關(guān)PyTorch torch.matmul()函數(shù)用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論