matmul/mm 函数用法介绍

news2025/1/19 3:02:24

介绍torch.matmul之前先介绍torch.mm函数, mm和matmul都是torch中矩阵乘法函数,mm只能作用于二维矩阵,matmul可以作用于二维也能作用于高维矩阵

mm函数使用

x = torch.rand(4, 9)
y = torch.rand(9, 8)
print(torch.mm(x,y).shape)

torch.Size([4, 8])

matmul函数使用

  • 1 二维乘二维,结果和mm函数一样
x = torch.rand(4,9)
y = torch.rand(9,8)

print(torch.matmul(x,y).shape)
torch.Size([4, 8])
  • 2 高维乘法 3 维 乘 2 维
    将x的第0维提出来,剩下的就是二维矩阵乘法得到 9,4,8
x = torch.rand(9,4,9)
y = torch.rand(9,8)
 
print(torch.matmul(x,y).shape)

torch.Size([9, 4, 8])
  • 3 高维矩阵乘法 3维 乘 3维
    两种情况
    1)x和y的0维一样直接提出来,剩下的是二维矩阵乘法结果是 9,5,6
    2)x和y的第0维不一样,如果是有一个第0维是1则可以直接扩展成跟另一个矩阵的维度一样,然后直接提出来,剩下的二维矩阵乘法,下方x的矩阵第0维是1,y的是9,直接把x矩阵第0维扩展成9,即可跟下方第一个操作相同
x = torch.rand(9, 5, 8)
y = torch.rand(9, 8, 6)
print(torch.matmul(x,y).shape)

torch.Size([9,5,6])

x = torch.rand(1, 5, 8)
y = torch.rand(9, 8, 6)
print(torch.matmul(x,y).shape)

torch.Size([9,5,6])
torch.Size([9,5,6])
    1. 高维矩阵乘法 4维 乘 3 维
      根据上方总结的规则,下方同样做法,多余的一维或几维,直接提出来,剩下的同维度矩阵直接计算,如果是1就扩展成与之相对另一个矩阵的相同的数,如果不同也不为1,就直接报错
x = torch.rand(6, 9, 5, 8)
y = torch.rand(9, 8, 6)
print(torch.matmul(x,y).shape)
torch.Size([6,9,5,6])

x = torch.rand(6, 1, 5, 8)
y = torch.rand(9, 8, 6)
print(torch.matmul(x,y).shape)
torch.Size([6,9,5,6])

x = torch.rand(6, 9, 1, 5, 8)
y = torch.rand(9, 8, 6)
print(torch.matmul(x,y).shape)
torch.Size([6,9,9,5,6])

x = torch.rand(6, 9,8,9, 1, 5, 8)
y = torch.rand(9, 8, 6)
print(torch.matmul(x,y).shape)
torch.Size([6,9,8,9,9,5,6])

  

 

参考资料

torch.mm()&torch.matmul()
torch.matmul()用法介绍
pytorch官方文档
torch中点积,叉积和卷积

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532522.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux Shell 实现一键部署VMware Workstation

VMware Workstation 前言 VMware Workstation Pro 是业界标准的桌面 Hypervisor,用于在 Linux 或 Windows PC 上运行虚拟机 download VMware_Workstation VMware_Workstation WindowsVMware_Workstation linux文档downloaddownload参考 Linux 各系统下载使用参…

Scrapy 基本使用

一、Scrapy框架使用 1. 创建scrapy项目(不能有汉字,不能数字开头) scrapy startproject Baidu 2. 创建爬虫文件 1. cd Baidu 2. scrapy genspider wenda www.baidu.com 注意: parse()是执行了start_url之后要执行的方法&#…

Camunda 外部任务(External Task)如何使用

Camunda的外部任务(External Task)是一种可分配和可重试的任务,与传统的用户任务不同,它可以在 Camunda 流程引擎之外的应用程序中执行。 外部任务可以用于将复杂的业务逻辑委托给外部系统,例如第三方服务或自定义的应…

Java简便模拟验证码

package staticStu.util;import java.util.Random;public class Login {public static void main(String[] args) {// 开发一个验证码// 1、定义一个变量记录验证码String code"";// 2、定义一个变量记住全部验证码字符String data"abcdefghijklmnopqrstuvwxyzA…

mongodb wireshark显示

mongodb wireshark展示为ssl,只需要禁用tls,然后把当前会话解码为mongo就可以

鸿蒙Hi3861学习十四-Huawei LiteOS-M(AP模式)

一、简介 参看上一章:鸿蒙Hi3861学习十四-Huawei LiteOS-M(STA模式)_t_guest的博客-CSDN博客 二、API介绍 RegisterWifiEvent 函数功能: 为指定的WIFI事件注册回调函数。当WIFIEVENT中定义的WIFI事件发生时,将调用已注…

MySQL体系架构

一、 MySQL体系架构 MySQL体系架构可分为物理架构和逻辑架构。 1、MySQL物理体系架构 1.1 配置文件 auto.cnf: 配置了MySQL Server的UUIDmy.cnf: MySQL的配置文件 1.2 其他重要文件 -basedirdir_name: MySQL安装的二进制文件目录-datadirdir_name: MySQL的数据目录和-pid-…

使用 Conv1D-LSTM 进行时间序列预测:预测多个未来时间步【优化】

未优化之前的版本见下,作者当时主要是为Mark这个项目,未进行深入分析。 使用 Conv1D-LSTM 进行时间序列预测:预测多个未来时间步 Introduction 通常有许多时间序列预测方法,例如 ARIMA、SARIMA 和 Holtz-winters,但是…

计算机网络基础(子网划分)

文章目录 一、网络设备二、IP地址分类A类地址B类地址C类地址特殊IP地址 三、划分子网根据子网掩码判断主机数根据子网和主机判断子网掩码根据IP和子网掩码判断子网数 四、场景运用 一、网络设备 1.集线器(hub):不可以隔离冲突域,…

Redis内存优化——ZSet类型介绍及底层原理详解

系列文章目录 Redis内存优化——String类型介绍及底层原理详解 Redis内存优化——Hash类型介绍及底层原理详解 Redis内存优化——List类型介绍及底层原理详解 Redis内存优化——Set类型介绍及底层原理详解 Redis内存优化——ZSet类型介绍及底层原理详解 文章目录 系列文章目录…

Ingress:k8s集群进出流量的总管

Ingress:k8s集群进出流量的总管 Service 对象,它是 Kubernetes 内置的负载均衡机制,使用静态 IP 地址代理动态变化的 Pod,支持域名访问和服务发现,是微服务架构必需的基础设施。 Service 很有用,但也只能说…

分享一个国内可用的ChatGPT网站,免费无限制,支持AI绘画 - AI 百晓生

背景 ChatGPT作为一种基于人工智能技术的自然语言处理工具,近期的热度直接沸腾🌋。 作为一个AI爱好者,翻遍了各大基于ChatGPT的网站,终于找到一个免费!免登陆!手机电脑通用!国内可直接对话的C…

使用apisix代理静态文件

前言 最近公司考虑用apisix作为公司网关并且部署到k8s上,我这边收到一个小任务:使用apisix代理静态文件 通过apisix官网了解到它构建于 NGINX ngx_lua 的技术基础之上,所以按理应该和nginx代理静态资源是一样的。因为是通过docker容器部署…

STM32-内部温度传感器实验

STM32内部是有温度传感器的,以F1为例,它的温度采集范围是-40度到125度,精度为正负2度,采样通道为ADC1_INI6,上电控制位为TSVREFE位。 温度计算方式为:T(摄氏度) (V25 - Vsense) / Avg_Slope 25&#xff…

数据库管理-第七十六期 如何升级19c RAC(20230516)

数据库管理 2023-05-16 第七十六期 如何升级19c RAC1 回头处理2 升级AHF3 升级GI及DB3.1 拷贝所需文件3.2 升级OPatch3.3 升级GI与DB3.4 应用SQL变更 4 升级OJVM4.1 解压补丁4.2执行补丁冲突检查:4.3 升级OJVM4.4 应用SQL变更 5 最终验证总结 第七十六期 如何升级19…

NC 人力薪酬管理怎么结账?

NC 人力薪酬管理结账流程 1、先在【薪资发放】节点选择相应的薪资方案进行查询操作,然后进行计算操作; 2、计算操作完后,再进行审核操作; 3、如果薪资方案勾选了“发放数据需要审批”属性,则需要在【发放申请】节点…

【NB 2023】从一般蛋白质语言模型中高效进化人类抗体

Efficient evolution of human antibodies from general protein language models 哈佛大学化学与化学生物学系和圣路易斯华盛顿大学的研究人员共同完成的一篇论文,发表在Nature Biotechnology上。 抗体是一种大分子,属于免疫球蛋白家族,它…

springboot 启动后,调用接口时报错404问题汇总(层层推进、超全面)

线上环境 确保项目启动成功 看到这条日志才能判定项目是启动成功的 确保controller类被成功注册到了springboot容器中 首先,按springboot的类扫描规则来说,启动类和被扫描的组件类应该要在同一包下的 验证策略 从springboot容器中尝试去获取到contro…

【Springboot】yaml配置文件多环境切换

关于配置文件的详细说明可以看官方文档: 24. Externalized Configuration 以下是个人学习过程中的笔记,如有错误,请多指教! 目录 (一)配置文件 (二)yaml的概述及基本使用 yaml基本…

TCP与UDP相关知识(详细)

目录 一、UDP 和 TCP 的特点与区别 二、UDP 与TCP 首部格式 三、TCP 的三次握手和四次挥手 四、TCP 短连接和长连接的区别 五、TCP粘包、拆包及解决办法 六、TCP 可靠传输 七、TCP 滑动窗口 八、TCP 流量控制 九、TCP 拥塞控制 十、提供网络利用率 一、UDP 和 TCP 的特…