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

