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

交易类网站建设功能表团员注册网站

交易类网站建设功能表,团员注册网站,三维家设计官网,黄冈做网站torch.mm 是 PyTorch 中用于 二维矩阵乘法#xff08;matrix-matrix multiplication#xff09; 的函数#xff0c;等价于数学中的 A B 矩阵乘积。 一、函数定义 torch.mm(input, mat2) → Tensor执行的是两个 2D Tensor#xff08;矩阵#xff09;的标准矩阵乘法。 in…torch.mm 是 PyTorch 中用于 二维矩阵乘法matrix-matrix multiplication 的函数等价于数学中的 A × B 矩阵乘积。 一、函数定义 torch.mm(input, mat2) → Tensor执行的是两个 2D Tensor矩阵的标准矩阵乘法。 input: 第一个二维张量形状为 (n × m)mat2: 第二个二维张量形状为 (m × p)返回形状为 (n × p) 的张量 二、使用条件和注意事项 条件说明仅支持 2D 张量一维或三维以上使用 torch.matmul 或 操作符维度要匹配即 input.shape[1] mat2.shape[0]不支持广播两个矩阵维度不匹配会直接报错结果是普通矩阵乘积不是逐元素乘法Hadamard即不是 * 或 torch.mul() 三、示例代码 示例 1基本矩阵乘法 import torchA torch.tensor([[1., 2.], [3., 4.]]) # 2x2 B torch.tensor([[5., 6.], [7., 8.]]) # 2x2C torch.mm(A, B) print(C)输出 tensor([[19., 22.],[43., 50.]])计算步骤 C[0][0] 1*5 2*7 19 C[0][1] 1*6 2*8 22 ...示例 2不匹配维度导致报错 A torch.rand(2, 3) B torch.rand(4, 2) C torch.mm(A, B) # ❌ 会报错报错 RuntimeError: mat1 and mat2 shapes cannot be multiplied (2x3 and 4x2)示例 3推荐写法推荐使用 或 matmul A torch.rand(3, 4) B torch.rand(4, 5)C1 torch.mm(A, B) C2 A B # 推荐用法 C3 torch.matmul(A, B) # 推荐用法四、与其他乘法函数的比较 函数名支持维度运算类型支持广播torch.mm仅限二维矩阵乘法❌ 不支持torch.matmul1D, 2D, ND自动判断点乘 / 矩阵乘✅ 支持torch.bmm批量二维乘法3D Tensor batch × batch❌ 不支持torch.mul任意维度元素乘Hadamard✅ 支持* 运算符任意维度元素乘✅ 支持 运算符ND推荐用矩阵乘法和 matmul 一样✅ 五、典型应用场景 神经网络权重乘法output torch.mm(W, x)点云 / 图像变换x torch.mm(R, x) t多层感知机中的矩阵计算注意力机制中 QK^T 乘积 六、总结什么时候用 mm 使用场景用什么仅二维矩阵乘法torch.mm高维或支持广播乘法torch.matmul / 批量矩阵乘法 (如 batch_size×3×3)torch.bmm元素乘torch.mul or * 在 PyTorch 中torch.bmm 是 批量矩阵乘法batch matrix multiplication 的操作专用于处理三维张量batch of matrices。它的主要作用是对一组矩阵成对进行乘法效率远高于手动循环计算。 一、torch.bmm 语法 torch.bmm(input, mat2, *, outNone) → Tensorinput: Tensor形状为 (B, N, M)mat2: Tensor形状为 (B, M, P)返回结果形状为 (B, N, P) 这表示对 B 对 N×M 和 M×P 的矩阵进行成对相乘。 二、示例演示 示例 1基础用法 import torch# 定义两个 batch 矩阵 A torch.randn(4, 2, 3) # shape: (B4, N2, M3) B torch.randn(4, 3, 5) # shape: (B4, M3, P5)# 批量矩阵乘法 C torch.bmm(A, B) # shape: (4, 2, 5)print(C.shape) # 输出: torch.Size([4, 2, 5])示例 2手动循环 vs bmm 效率对比 # 慢速手动方式 C_manual torch.stack([A[i] B[i] for i in range(A.size(0))])# 等效于 bmm C_bmm torch.bmm(A, B)print(torch.allclose(C_manual, C_bmm)) # True三、注意事项 1. 维度必须是三维张量 否则会报错 RuntimeError: batch1 must be a 3D tensor你可以通过 .unsqueeze() 手动调整维度 a torch.randn(2, 3) b torch.randn(3, 4)# 升维 a_batch a.unsqueeze(0) # (1, 2, 3) b_batch b.unsqueeze(0) # (1, 3, 4)c torch.bmm(a_batch, b_batch) # (1, 2, 4)2. 维度必须满足矩阵乘法规则 (B, N, M) × (B, M, P) → (B, N, P)若 M 不一致会报错 RuntimeError: Expected size for the second dimension of batch2 tensor to match the first dimension of batch1 tensor3. bmm 不支持广播broadcasting 必须显式提供相同的 batch size。如果只有一个矩阵固定可以使用 .expand() A torch.randn(1, 2, 3) # 单个矩阵 B torch.randn(4, 3, 5) # 4 个矩阵# 扩展 A 以进行 batch 乘法 A_expand A.expand(4, -1, -1) C torch.bmm(A_expand, B) # (4, 2, 5)四、在实际应用中的例子 在点云变换中批量乘旋转矩阵 # 假设有 B 个旋转矩阵和点坐标 R torch.randn(B, 3, 3) # 旋转矩阵 points torch.randn(B, 3, N) # 点云# 先转置点坐标为 (B, N, 3) points_T points.transpose(1, 2) # (B, N, 3)# 用 bmm 做点变换每组点乘旋转 transformed torch.bmm(points_T, R.transpose(1, 2)) # (B, N, 3)五、总结 特性torch.bmm操作对象三维张量batch of matrices核心规则(B, N, M) x (B, M, P) (B, N, P)是否支持广播❌ 不支持需要手动 .expand()与 matmul 区别matmul 支持更多广播bmm 更高效用于纯批量矩阵乘法应用场景批量线性变换、点云配准、神经网络前向传播等
http://www.pierceye.com/news/261602/

相关文章:

  • 手机刷网站排名软件建设银行网站怎么登录密码忘了怎么办
  • 利用海康威视做直播网站鞍山网站建设找金航
  • 做网站大概花多少钱商圈云分销软件下载
  • 万户网站制作网站跳转怎么做
  • 网站开发全程设计做网站推广的公司发展前景
  • 电商设计网站培训建设网站域名
  • 石家庄免费专业做网站网站建设投标书服务方案范本
  • 怀孕单子图片在线制作北京seo服务行者
  • 网站备案 子域名云南商城网站建设
  • 上传到服务器的网站打开是空白网站报备流程
  • 如何用ps做网站标识一个叫mit做app的网站
  • 网站免费网站免费主流网站模板
  • 湖州市交通建设管理局网站牌具做网站可以吗
  • 湖南鸿泰电力建设有限公司网站西安做小程序的公司
  • 学校资源网站建设方案聊城网站建设
  • windows 做网站服务器python做的网站漏洞
  • 培训网站推荐网站内容该怎么做
  • 精通网站建设电子档朵朵软件网站建设
  • 铜山区规划建设局网站网站开发的甘特图
  • 访问网站速度慢中国最新军事新闻直播
  • 商城网站的psd模板免费下载哪里可以上传自己的php网站
  • 珠宝网站策划书网页设计的毕业设计
  • 最经典最常用的网站推广方式什么做网站赚钱
  • 广州哪家做网站化妆品网站方案
  • cms开源网站管理系统北京网站建设策划解决方案
  • 洛阳做多屏合一网站最新款淘宝客源码整网站程序模板+后台带自动采集商品功能带文章
  • 宁国新站seo中国建筑网官网监理工程师网站
  • 自己建网站多少钱福州建设企业网站
  • 容桂佛山做app网站wordpress 搜索 任意
  • dw做单页网站教程盐城网站建设价位