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

PyTorch_点积运算

点积运算要求第一个矩阵 shape:(n, m),第二个矩阵 shape: (m, p), 两个矩阵点积运算shape为:(n,p)

  1. 运算符 @ 用于进行两个矩阵的点乘运算
  2. torch.mm 用于进行两个矩阵点乘运算,要求输入的矩阵为3维 (mm 代表 mat, mul)
  3. torch.bmm 用于批量进行矩阵点乘运算,要求输入的矩阵为3维 (b 代表 batch)
  4. torch.matmul 对进行点乘运算的两矩阵形状没有限定。
    a. 对于输入都是二维的张量相当于 mm 运算
    b. 对于输入都是三维的张量相当于 bmm 运算
    c. 对数输入的shape不同的张量,对应的最后几个维度必须符合矩阵运算规则

代码

import torch 
import numpy as np # 使用@运算符
def test01():# 形状为:3行2列 data1 = torch.tensor([[1,2], [3,4], [5,6]])# 形状为:2行2列data2 = torch.tensor([[5,6], [7,8]])data = data1 @ data2print(data) # 使用 mm 函数
def test02():# 要求输入的张量形状都是二维的# 形状为:3行2列 data1 = torch.tensor([[1,2], [3,4], [5,6]])# 形状为:2行2列data2 = torch.tensor([[5,6], [7,8]])data = torch.mm(data1, data2)   print(data)print(data.shape)# 使用 bmm 函数
def test03():# 第一个维度:表示批次# 第二个维度:多少行# 第三个维度:多少列data1 = torch.randn(3, 4, 5)data2 = torch.randn(3, 5, 8)data = torch.bmm(data1, data2) print(data.shape)# 使用 matmul 函数
def test04():# 对二维进行计算data1 = torch.randn(4,5)data2 = torch.randn(5,8)print(torch.matmul(data1, data2).shape)# 对三维进行计算data1 = torch.randn(3, 4, 5)data2 = torch.randn(3, 5, 8)print(torch.matmul(data1, data2).shape)data1 = torch.randn(3, 4, 5)data2 = torch.randn(5, 8)print(torch.matmul(data1, data2).shape) if __name__ == "__main__":test04()

相关文章:

  • 隐藏元素的多种方式
  • 2025年4月人工智能发展前沿
  • 【JS逆向】某点数据登录逆向分析
  • 链表的回文结构题解
  • MySQL 比较运算符详解
  • NV189NV195美光固态闪存NV197NV199
  • 学习笔记:Qlib 量化投资平台框架 — FOR DEVELOPERS
  • c++ 函数参数传递
  • HTML与CSS实现风车旋转图形的代码技术详解
  • Windows下调试WebRTC源码
  • diskANN总结
  • 【Linux系统篇】:Linux线程控制基础---线程的创建,等待与终止
  • UDP 通信详解:`sendto` 和 `recvfrom` 的使用
  • 【重走C++学习之路】27、C++IO流
  • 市面上所有大模型apikey获取指南(持续更新中)
  • 【Mytais系列】Datasource模块:数据源连接
  • 动态规划之路劲问题3
  • GitHub Actions 和 GitLab CI/CD 流水线设计
  • 基于 SAFM 超分辨率上采样模块的 YOLOv12 改进方法—模糊场景目标检测精度提升研究
  • Qt开发:按钮类的介绍和使用
  • 下达专项资金、党政主官田间调研……全国多地力保夏粮稳收
  • 融创中国清盘聆讯延至8月25日,清盘呈请要求遭到部分债权人反对
  • 党旗下的青春|赵天益:少年确定志向,把最好的时光奉献给戏剧事业
  • 图忆|上海车展40年:中国人的梦中情车有哪些变化(下)
  • 专家分析丨乌美签署矿产协议,展现美外交困境下的无奈
  • 五一去哪玩?“时代交响”音乐会解锁艺术假期