PyTorch中的常见乘法运算(*、@、Mul、Matmul)

哈达玛积:torch.mul()、torch.dot()、*

两个相同尺寸的张量相乘,然后对应元素的相乘就是哈达玛积,这种乘法要求参与运算的矩阵唯独相同,运算结果还是一个相同维度的矩阵。在这个运算中,torch.mul()和*以及torch.dot()的作用是等价的:

python 复制代码
a = torch.tensor([1,2])
b = torch.tensor([2,3])
print(a*b)
print(torch.mul(a,b))
>>> tensor([2, 6])
>>> tensor([2, 6])

这与除法的运算规则相同,torch中的torch.div()其实就是/, 类似的:torch.add就是+,torch.sub()就是-,不过符号的运算更简单常用:

python 复制代码
a = torch.tensor([1.,2.])
b = torch.tensor([2.,3.])
print(a/b)
print(torch.div(a/b))
>>> tensor([0.5000, 0.6667])
>>> tensor([0.5000, 0.6667])

矩阵乘法:torch.mm()、torch.matmul()、@

如果参与运算的是一个多维张量,那么最好torch.matmul(),由于广播机制的原因,在多维张量中,参与矩阵运算的其实只有后两个维度,前面的维度则被认为是batch:

python 复制代码
a = torch.tensor([1.,2.])
b = torch.tensor([2.,3.]).view(1,2)
print(torch.mm(a, b))
print(torch.matmul(a, b))
print(a @ b)

tensor([[2., 3.],
        [4., 6.]])
tensor([[2., 3.],
        [4., 6.]])
tensor([[2., 3.],
        [4., 6.]])
相关推荐
想你依然心痛22 分钟前
【腾讯位置服务开发者征文大赛】时空数据智能洞察:基于MCP协议与腾讯位置服务的商业选址AI决策系统实战
人工智能·tag·腾讯地图·mcp·腾讯位置服务
Clank的游戏栈23 分钟前
AI实战:如何更好的使用AI开发游戏项目
人工智能·游戏
房开民24 分钟前
OpenCV 中 cv::split() 的最基础用法
人工智能·opencv·计算机视觉
fzil00124 分钟前
每日财经数据自动抓取 + 飞书推送
人工智能·飞书
昵称小白24 分钟前
目标检测到底在做什么:分类、检测、分割的区别(三)
人工智能·计算机视觉·目标跟踪
TaoSense31 分钟前
全球消费类家庭安防监控行业深度研究报告:AI 驱动下的产业变革与投资机遇
java·人工智能·struts
牙牙要健康32 分钟前
【室内户型图重建】【深度学习】Windoes11下RoomFormer官方代码Pytorch实现
人工智能·pytorch·深度学习
犽戾武34 分钟前
VR遥操作机械臂系统:核心算法与数学方法全解析
linux·人工智能
skywalk816334 分钟前
基于Kotti-py312这个项目,帮我写一个AI 交流网站。先帮我规划一下!我的诉求是能实现AI资源的互助,大家互相帮着找点子,一起落地实践!
人工智能
AI产品备案34 分钟前
深度解读生成式人工智能服务基本要求(GB/T45654)
人工智能·aigc·大模型备案·安全评估·生成式人工智能服务安全基本要求