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.]])
相关推荐
大傻^5 分钟前
LangChain4j RAG 核心:Document、Embedding 与向量存储抽象
开发语言·人工智能·python·embedding·langchain4j
港股研究社8 分钟前
腾讯音乐的多元增长新路径:音乐IP经济
大数据·人工智能·tcp/ip
深圳季连AIgraphX11 分钟前
UROVAs 端到端自动驾驶模型训练、开闭环测试与上车联调
人工智能·机器学习·自动驾驶
这张生成的图像能检测吗12 分钟前
(论文速读)基于深度学习的电动汽车直流充电桩开路故障精确诊断多特征融合模型
人工智能·深度学习·计算机视觉·故障诊断
GIOTTO情31 分钟前
技术解析:Infoseek基于AI重构媒介投放全链路,适配2026年奥斯卡高端投放场景
大数据·人工智能
码路高手35 分钟前
Trae-Agent中的config模块分析
人工智能·架构
AI浩41 分钟前
CollabOD:用于无人机小目标检测的跨尺度视觉协作多骨干网络
人工智能·目标检测·无人机
信道者43 分钟前
乌克兰开放战场数据宝库:AI无人机迎来“实战级”进化
大数据·人工智能·无人机
funfan05171 小时前
【Agent】Ubuntu22.04安装部署Openclaw(养龙虾)图文教程及免费Token攻略
人工智能·openclaw
sali-tec1 小时前
C# 基于OpenCv的视觉工作流-章38-BF特征匹配
图像处理·人工智能·opencv·算法·计算机视觉