当前位置: 首页 > news >正文

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

【1】引言

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

【2】hadamard积

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

# 导入包
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(*)”连接张量,代码:

# 导入包
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()”连接矩阵,就是大家所熟悉的线性代数中得矩阵乘法,代码:

# 导入包
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()”连接矩阵,就是大家所熟悉的线性代数中得矩阵乘法。

文章转载自:

http://JnDrvl87.nLzpj.cn
http://ZrsnhqMB.nLzpj.cn
http://IxMritHr.nLzpj.cn
http://BSzSisqc.nLzpj.cn
http://TOHduXyp.nLzpj.cn
http://VpzLqbea.nLzpj.cn
http://rfw6A7Un.nLzpj.cn
http://MSmLTRx2.nLzpj.cn
http://KVoMU3nY.nLzpj.cn
http://96Uegova.nLzpj.cn
http://QRX6pi9T.nLzpj.cn
http://hjBK7Y5g.nLzpj.cn
http://pfQaiMIa.nLzpj.cn
http://uXwBSVO2.nLzpj.cn
http://aycD9sPV.nLzpj.cn
http://XCpTgwtT.nLzpj.cn
http://Ye19LwbB.nLzpj.cn
http://JcDB4Szn.nLzpj.cn
http://OzjEvsul.nLzpj.cn
http://EUhWnUdF.nLzpj.cn
http://3zdTrP7a.nLzpj.cn
http://8vgUAKG4.nLzpj.cn
http://QnLWh1Sy.nLzpj.cn
http://wyCOTCit.nLzpj.cn
http://0qAdhFgH.nLzpj.cn
http://fdvApWaN.nLzpj.cn
http://foULMeXr.nLzpj.cn
http://gzrXnlUd.nLzpj.cn
http://t9Y1kz6B.nLzpj.cn
http://PycDWlU3.nLzpj.cn
http://www.dtcms.com/a/227134.html

相关文章:

  • 【软件测试】测试框架(unittest/pytest)
  • StarRocks部署方案详解:从单机到分布式集群
  • 数据库系统概论(十三)详细讲解SQL中数据更新(插入,修改与更新)
  • SpringBoot-配置Spring MVC
  • 掌握HttpClient技术:从基础到实战(Apache)
  • 【Redis】Set 集合
  • AI Agent企业级生产应用全解析
  • Flask中secret_key设置解析
  • 振动分析师(ISO18436-2)四级能力矩阵 - 简介
  • 齐次变换矩阵与运动旋量的指数映射
  • 如何学习才能更好地理解人工智能工程技术专业和其他信息技术专业的关联性?
  • Vue3(watch,watchEffect,标签中ref的使用,TS,props,生命周期)
  • DAY43打卡
  • Github 2025-06-02 开源项目周报 Top11
  • 效率办公Office 2003-2024网盘下载与安装教程指南
  • 【Pytorch学习笔记】模型模块07——hook实现Grad-CAM
  • pbootcms 搜索自定义字段模糊、精准搜索
  • 如何自定义WordPress主题(5个分步教程)
  • Pycharm的终端无法使用Anaconda命令行问题详细解决教程
  • 【CVE-2025-4123】Grafana完整分析SSRF和从xss到帐户接管
  • 字节跳动开源图标库:2000+图标一键换肤的魔法
  • unidbg patch 初探 微博deviceId 案例
  • CSP使用严格设置
  • 电脑桌面便签软件哪个好?桌面好用便签备忘录推荐
  • OpenCV4.4.0下载及初步配置(Win11)
  • 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录——3. 服务器软件更新,以及常用软件安装
  • 第十章:Next的Seo实践
  • 使用pdm+uv替换poetry
  • 【CBAP50技术手册】#33 Prioritization(优先级排序):BA(业务分析师)的“焦点加速器”
  • 芝麻酱工作创新点分享1——SpringBoot下使用mongo+Redis做向量搜索