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.]])
相关推荐
Ro Jace8 分钟前
脉冲神经网络与神经形态计算异同
人工智能·深度学习·神经网络
咚咚王者11 分钟前
人工智能之视觉领域 计算机视觉 第六章 图像平滑处理
人工智能·计算机视觉
睡醒了叭12 分钟前
coze-工作流-JSON数据处理
人工智能·aigc
阿杰学AI13 分钟前
AI核心知识107—大语言模型之 Prompt Engineer(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·aigc·prompt engineer·提示词工程师
阿林来了14 分钟前
Flutter三方库适配OpenHarmony【flutter_speech】— 语音识别引擎创建
人工智能·flutter·语音识别·harmonyos
密瓜智能14 分钟前
2025 年 HAMi 年度回顾 | 从 GPU 调度器到云原生 AI 基础设施的中流砥柱
人工智能·云原生
咚咚王者20 分钟前
人工智能之视觉领域 计算机视觉 第七章 图像形态学操作
人工智能·计算机视觉
weixin_4684668523 分钟前
PyTorch导出ONNX格式分割模型及在C#中调用预测
人工智能·pytorch·深度学习·c#·跨平台·onnx·语义分割
AI英德西牛仔24 分钟前
AIword排版
人工智能
阿林来了30 分钟前
Flutter三方库适配OpenHarmony【flutter_speech】— 语音识别启动与参数配置
人工智能·flutter·语音识别·harmonyos