深度学习|pytorch基本运算-hadamard积、点积和矩阵乘法

【1】引言

pytorch对张量的基本运算和线性代数课堂的教学有一些区别,至少存在hadamard积、点积和矩阵乘法三种截然不同的计算方法。

【2】hadamard积

hadamard积是元素对位相乘,用"*"连接张量,代码:

python 复制代码
# 导入包
import torch
# 生成多维张量
y=torch.tensor([[1,2,3],
               [1,2,3],
                [1,2,3]])
z=torch.tensor([[1,2,3],
               [3,2,1],
                [0,2,6]])
# hadamard积运算
a=y*z
# 打印
print(a)

代码运行后,按照对位相乘的效果输出:

++图1 hadamard积运算++

【3】点积

点积是元素对位相乘后再求和,用"torch.sum(*)"连接张量,代码:

python 复制代码
# 导入包
import torch
# 生成多维张量
y=torch.tensor([[1,2,3],
               [1,2,3],
                [1,2,3]])
z=torch.tensor([[11,2,3],
               [3,12,1],
                [10,2,16]])
# hadamard积运算
a=y*z
# 打印
print(a)
# 点积运算
b=torch.sum(y*z)
# 打印
print(b)

代码运行后,按照先对位相乘、再求和的效果输出:

++图2 点积运算++

【4】矩阵乘法

矩阵乘法是第一个矩阵的第i行与第二个矩阵第j列相乘的效果,用"torch.mm()"连接矩阵,就是大家所熟悉的线性代数中得矩阵乘法,代码:

python 复制代码
# 导入包
import torch
# 生成多维张量
y=torch.tensor([[11,2,3],
               [1,12,30],
                [10,12,3]])
z=torch.tensor([[11,12,3],
               [3,12,10],
                [10,2,16]])
# hadamard积运算
a=y*z
# 打印
print(a)
# 点积运算
b=torch.sum(y*z)
# 打印
print(b)
# 矩阵乘法
c=torch.mm(y,z)
# 打印
print(c)

代码运行后,按照第一个矩阵的第i行与第二个矩阵第j列相乘的效果输出:

++图3 矩阵乘法运算++

【5】总结

本次学习了pytorch基本运算,包括hadamard积、点积和矩阵乘法:

  • hadamard积是元素对位相乘,用"*"连接张量
  • 点积是元素对位相乘后再求和,用"torch.sum(*)"连接张量
  • 矩阵乘法是第一个矩阵的第i行与第二个矩阵第j列相乘的效果,用"torch.mm()"连接矩阵,就是大家所熟悉的线性代数中得矩阵乘法。
相关推荐
LinkTime_Cloud1 分钟前
谷歌深夜突袭:免费Flash模型发令,部分测试优于 GPT-5.2
人工智能·gpt·深度学习
Aspect of twilight19 分钟前
深度学习不同GPU性能比较
人工智能·深度学习
丝瓜蛋汤35 分钟前
chunking-free RAG简介
人工智能·深度学习·机器学习
STLearner1 小时前
VLDB 2025 | 时间序列(Time Series)论文总结(预测,异常检测,压缩,自动化等)
数据库·人工智能·深度学习·神经网络·机器学习·数据挖掘·时序数据库
AndrewHZ2 小时前
【复杂网络分析】什么是图神经网络?
人工智能·深度学习·神经网络·算法·图神经网络·复杂网络
XiaoMu_0014 小时前
基于深度学习的穿戴识别系统设计与实现
人工智能·深度学习
HyperAI超神经4 小时前
【vLLM 学习】Prefix Caching
人工智能·深度学习·学习·大语言模型·cpu·gpu·vllm
声声codeGrandMaster5 小时前
线性回归实战下与深度学习概念
深度学习·算法·线性回归
拾贰_C5 小时前
[Python | pytorch | torchvision ] models like ResNet... 命名变量说明
开发语言·pytorch·python
paopao_wu6 小时前
深度学习2:理解感知机
人工智能·深度学习