PyTorch之torch.matmul函數(shù)的使用及說明
一、簡介
torch.matmul 用于兩維或更高維張量的矩陣乘法操作。
它支持廣播機(jī)制,并且能夠處理不同形狀和維度的張量,適用于廣泛的應(yīng)用場景。
二、語法
torch.matmul 函數(shù)的基本語法如下:
torch.matmul(input, other, *, out=None)
三、參數(shù)
input:第一個輸入張量。other:第二個輸入張量,與input進(jìn)行矩陣乘法。out(可選):存儲輸出結(jié)果的張量。
四、示例
下面通過幾個簡單的例子來演示 torch.matmul 的用法。
示例 1:二維矩陣乘法
import torch
# 創(chuàng)建兩個二維張量
a = torch.tensor([[1, 2], [3, 4]])
b = torch.tensor([[5, 6], [7, 8]])
# 使用 torch.matmul 進(jìn)行矩陣乘法
result = torch.matmul(a, b)
print(a)
print(b)
print("二維矩陣乘法結(jié)果:")
print(result)輸出:
tensor([[1, 2],
[3, 4]])
tensor([[5, 6],
[7, 8]])
二維矩陣乘法結(jié)果:
tensor([[19, 22],
[43, 50]])
在這個例子中,torch.matmul 對兩個二維張量進(jìn)行了標(biāo)準(zhǔn)的矩陣乘法。
示例 2:高維張量乘法
import torch
# 創(chuàng)建兩個高維張量
a = torch.randn(2, 3, 4)
b = torch.randn(2, 4, 5)
# 使用 torch.matmul 進(jìn)行高維張量乘法
result = torch.matmul(a, b)
print("高維張量乘法結(jié)果的形狀:")
print(result.shape)輸出:
高維張量乘法結(jié)果的形狀:
torch.Size([2, 3, 5])
在這個例子中,torch.matmul 對兩個高維張量進(jìn)行了矩陣乘法,并且結(jié)果張量的形狀是 [2, 3, 5],符合矩陣乘法的規(guī)則。
沒有了解過的童鞋可能對這里的乘法規(guī)則有所迷惑,因此解釋一下:對于高維($\geq$3維度)矩陣乘法,只要保持最后兩個維(低二維)的矩陣滿足普通矩陣乘法規(guī)則,高維的各維度保持相等或?qū)?yīng)維度中有一個為1即可。
在這里第2維為(3,4)與(4,5)滿足普通矩陣乘法要求,然后高維相等直接對應(yīng)位置矩陣相乘即可。
下面的廣播機(jī)制是高維為1的情況,此時會觸發(fā)廣播機(jī)制完成高維矩陣的乘法。
示例 3:廣播機(jī)制
import torch
# 創(chuàng)建兩個可以廣播的張量
a = torch.randn(2, 3, 4)
b = torch.randn(4, 5)
# 使用 torch.matmul 進(jìn)行廣播機(jī)制的矩陣乘法
result = torch.matmul(a, b)
print("廣播機(jī)制下的矩陣乘法結(jié)果的形狀:")
print(result.shape)輸出:
廣播機(jī)制下的矩陣乘法結(jié)果的形狀:
torch.Size([2, 3, 5])
在這個例子中,b 張量的形狀是 [4, 5],通過廣播機(jī)制,與 a 張量的形狀 [2, 3, 4] 進(jìn)行了兼容,并得到了結(jié)果張量的形狀 [2, 3, 5]。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python利用socketserver實現(xiàn)并發(fā)套接字功能
這篇文章主要為大家詳細(xì)介紹了python利用socketserver實現(xiàn)并發(fā)套接字功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
Python內(nèi)置函數(shù)input()示例詳解
input()函數(shù)是Python中用于獲取用戶輸入的一個簡單而強(qiáng)大的工具,它在創(chuàng)建需要用戶交互的程序時非常有用,這篇文章主要介紹了Python內(nèi)置函數(shù)input()詳解,需要的朋友可以參考下2024-04-04
使用Python實現(xiàn)Excel文件的拆分與合并操作
在數(shù)據(jù)處理和分析過程中,經(jīng)常遇到需要對Excel文件進(jìn)行拆分和合并操作,Python憑借其強(qiáng)大的數(shù)據(jù)處理能力,可以輕松實現(xiàn)這些任務(wù),本文將詳細(xì)介紹如何使用Python實現(xiàn)Excel文件的拆分與合并,并包含對應(yīng)的示例代碼,幫助全面掌握這一技巧,需要的朋友可以參考下2025-12-12

