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.]])
相关推荐
lisw051 分钟前
大数据审计学概述!
大数据·人工智能·科技
yunhuibin2 分钟前
VGGNet网络学习
人工智能·python·深度学习·神经网络·学习
肾透侧视攻城狮3 分钟前
《避坑指南与性能提升:TensorFlow图像分类项目核心实践全汇总》
人工智能·深度学习·tensorflow·模型结构可视化·编译模型·提高模型性能的方法·图像分类项目
大鹏说大话10 分钟前
从“能聊“到“能干“:Agentic AI的技术跃迁与商业重构
人工智能
是小蟹呀^10 分钟前
【论文阅读13】AdaFace:低画质人脸识别的破局之作,用“特征范数”重塑损失函数!
论文阅读·深度学习·分类·adaface
Chasing Aurora13 分钟前
vscode连接 服务器进行 深度学习
linux·ide·vscode·深度学习·研究生·解压缩·连接服务器
BackCatK Chen15 分钟前
无方向盘、无踏板!特斯拉Cybercab下线:自动驾驶的终极形态来了?
图像处理·人工智能·机器学习·自动驾驶·视觉检测·能源·制造
SmartBrain15 分钟前
战略洞察:小米AI转型与科技突破
人工智能·科技
1560820721915 分钟前
复旦微JFM9RFRF3P/RF3P5G+AI(昇腾310P)全国产采集回放/信号处理模块
人工智能·fpga开发
摘星编程19 分钟前
Transformer架构进化:从BERT到GPT-4,大语言模型如何重塑AI技术栈
人工智能·架构·transformer