深度学习|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()"连接矩阵,就是大家所熟悉的线性代数中得矩阵乘法。
相关推荐
yLDeveloper31 分钟前
从模型评估、梯度难题到科学初始化:一步步解析深度学习的训练问题
深度学习
Coder_Boy_1 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2401_836235861 小时前
中安未来SDK15:以AI之眼,解锁企业档案的数字化基因
人工智能·科技·深度学习·ocr·生活
njsgcs1 小时前
llm使用 AgentScope-Tuner 通过 RL 训练 FrozenLake 智能体
人工智能·深度学习
2的n次方_2 小时前
CANN ascend-transformer-boost 架构解析:融合注意力算子管线、长序列分块策略与图引擎协同机制
深度学习·架构·transformer
人工智能培训2 小时前
具身智能视觉、触觉、力觉、听觉等信息如何实时对齐与融合?
人工智能·深度学习·大模型·transformer·企业数字化转型·具身智能
pp起床4 小时前
Gen_AI 补充内容 Logit Lens 和 Patchscopes
人工智能·深度学习·机器学习
阿杰学AI4 小时前
AI核心知识91——大语言模型之 Transformer 架构(简洁且通俗易懂版)
人工智能·深度学习·ai·语言模型·自然语言处理·aigc·transformer
芷栀夏5 小时前
CANN ops-math:筑牢 AI 神经网络底层的高性能数学运算算子库核心实现
人工智能·深度学习·神经网络
Rorsion5 小时前
PyTorch实现二分类(单特征输出+单层神经网络)
人工智能·pytorch·分类