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.]])
相关推荐
Keep__Fighting2 分钟前
【神经网络的训练策略选取】
人工智能·深度学习·神经网络·算法
抠头专注python环境配置30 分钟前
解决Windows安装PythonOCC报错:从“No module named ‘OCC’ ”到一键成功
人工智能·windows·python·3d·cad·pythonocc
2501_9413220330 分钟前
计算机视觉实现火灾与烟雾实时监测系统
人工智能·计算机视觉
xiaobaishuoAI31 分钟前
分布式事务实战(Seata 版):解决分布式系统数据一致性问题(含代码教学)
大数据·人工智能·分布式·深度学习·wpf·geo
2501_9421917734 分钟前
【深度学习实战】数字仪表字符识别项目详解——基于YOLO11-HAFB-2模型的优化实现
人工智能·深度学习
Bruce-XIAO34 分钟前
数据标注方法
人工智能·nlp
Where-1 小时前
深度学习中的过拟合问题及解决方式
人工智能·深度学习
wen__xvn1 小时前
目标检测的局限
人工智能·目标检测·计算机视觉
力学与人工智能1 小时前
博士答辩PPT分享 | 高雷诺数湍流场数据同化与湍流模型机器学习研究
人工智能·机器学习·ppt分享·高雷诺数·流场数据同化·湍流模型
调参札记1 小时前
医学研究中的因果推断:重视态度与实践流程的结构性落差
人工智能