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

pytorch中的矩阵乘法

1. 运算符介绍

关于@运算,*运算,torch.mul(), torch.mm(), torch.mv(), tensor.t()

@ 和 *代表矩阵的两种相乘方式:

@表示常规的数学上定义的矩阵相乘;
*表示两个矩阵对应位置处的两个元素相乘。

1.1 矩阵点乘

*和torch.mul()等同:表示相同shape矩阵点乘,即对应位置相乘,得到矩阵有相同的shape。

一,对应点相乘,x.mul(y) ,即点乘操作,点乘不求和操作,又可以叫作Hadamard product;点乘再求和,即为卷积

>>> a = torch.Tensor([[1,2], [3,4], [5, 6]])
>>> a
tensor([[1., 2.],[3., 4.],[5., 6.]])
>>> a.mul(a)
tensor([[ 1.,  4.],[ 9., 16.],[25., 36.]])>>> a * a
tensor([[ 1.,  4.],[ 9., 16.],[25., 36.]])

1.2 矩阵乘法

@和torch.mm(a, b)等同:正常矩阵相乘,要求a的列数与b的行数相同。

torch.mv(X, w0):是矩阵和向量相乘.第一个参数是矩阵,第二个参数只能是一维向量,等价于X乘以w0的转置

二,矩阵相乘,x.mm(y)或者x.matmul(b), 矩阵大小需满足: (i, n)x(n, j)

>>> a
tensor([[1., 2.],[3., 4.],[5., 6.]])
>>> b = a.t()  # 转置
>>> b
tensor([[1., 3., 5.],[2., 4., 6.]])>>> a.mm(b)
tensor([[ 5., 11., 17.],[11., 25., 39.],[17., 39., 61.]])>>> a.matmul(b)
tensor([[ 5., 11., 17.],[11., 25., 39.],[17., 39., 61.]])

多维矩阵相乘

3维矩阵相乘

>>> a = torch.randn(64, 128, 56)
>>> b = torch.randn(64, 56, 72)>>> a.shape
torch.Size([64, 128, 56])
>>> b.shape
torch.Size([64, 56, 72])>>> d = a.matmul(b)  # 多出的一维作为batch提出来,其他部分做矩阵乘法。>>> d.shape
torch.Size([64, 128, 72])  # a.mm(b) 这个不行会报错:untimeError: self must be a matrix

4维矩阵相乘

>>> a = torch.randn(64, 3, 128, 56)
>>> b = torch.randn(64, 3, 56, 72)>>> d = a.matmul(b)  # 多出的维数作为batch提出来,其他部分做矩阵乘法。>>> d.shape
torch.Size([64, 3, 128, 72])  # a.mm(b) 这个不行会报错:untimeError: self must be a matrix

1.3 向量乘积

x.dot(y): 向量乘积,x,y均为一维向量。

Y.t():矩阵Y的转置。

ref

  1. https://blog.csdn.net/jizhidexiaoming/article/details/82502724
  2. https://blog.csdn.net/beauthy/article/details/121103704

相关文章:

pytorch中的矩阵乘法

1. 运算符介绍 关于运算,*运算,torch.mul(), torch.mm(), torch.mv(), tensor.t() 和 *代表矩阵的两种相乘方式: 表示常规的数学上定义的矩阵相乘; *表示两个矩阵对应位置处的两个元素相乘。 1.1 矩阵点乘 *和torch.mul()等同…...

Java--Stream流详解

Stream是Java 8 API添加的一个新的抽象,称为流Stream,以一种声明性方式处理数据集合(侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式) Stream流是从支持数据处理操作的源生成的元素序列,源可…...

[PHP]ShopXO企业级B2C免费开源商城系统 v2.3.1

ShopXO 企业级B2C免费开源电商系统! 求实进取、创新专注、自主研发、国内领先企业级B2C电商系统解决方案。 遵循Apache2开源协议发布,无需授权、可商用、可二次开发、满足99%的电商运营需求。 PCH5、支付宝小程序、微信小程序、百度小程序、头条&抖音…...

Python基础入门系列详解20篇

Python基础入门(1)----Python简介 Python基础入门(2)----安装Python环境(Windows、MacOS、CentOS、Ubuntu) Python基础入门(3)----Python基础语法:解释器、标识符、关键…...

P02项目(学习)

★ P02项目 项目描述:安全操作项目旨在提高医疗设备的安全性,特别是在医生离开操作屏幕时,以减少非授权人员的误操作风险。为实现这一目标,我们采用多层次的保护措施,包括人脸识别、姿势检测以及二维码识别等技术。这些…...

pandas 笔记:get_dummies分类变量one-hot化

1 函数介绍 pandas.get_dummies 是 pandas 库中的一个函数,它用于将分类变量转换为哑变量/指示变量。所谓的哑变量,就是将分类变量的每一个不同的值转换为一个新的0/1变量。在输出的DataFrame中,每一列都以该值的名称命名 pandas.get_dummi…...

PTE作文练习(一)

目录 65分备考建议 WE模版 范文 Supporting ideas: SWT 65分备考建议 RA重在多听标准的正确的示范,RS重在抓大放小,WFD重在整理错题,以及反反复复的车轮战,FIBRW重在“以对代记” 就是直接看答案,节约时间&#…...

如何做到一套FPGA工程无缝兼容两款不同的板卡?

试想这样一种场景,有两款不同的FPGA板卡,它们的功能代码90%都是一样的,但是两个板卡的管脚分配完全不同,一般情况下,我们需要设计两个工程,两套代码,之后还需要一直维护两个版本。 那么有没有一种自动化的方式,实现一个工程,编译出一个程序文件,下载到这两个不同的板…...

VSCode修改主题为Eclipse 绿色护眼模式

前言 从参加开发以来,一直使用eclipse进行开发,基本官方出新版本,我都会更新。后来出来很多其他的IDE工具,我也尝试了,但他们的主题都把我劝退了,黑色主题是谁想出来?😂 字体小的时…...

conan和cmake编译器版本不匹配问题解决

conan和cmake编译器版本不匹配问题解决 1 问题现象2 解决方法2.1 在CMakeLists.txt禁止编译器检查2.1.1 修改方式 2.2 探查问题出现的根本原因2.2.1 安装升级gcc2.2.2 安装升级g 注 执行环境:ubuntu 1 问题现象 conan要求的编译器版本和cmake检测到的当前的编译器…...

float单精度浮点数如何在计算机中存储

文章目录 1 float型数据组成2 实际举例3 代码测试4 写在最后 1 float型数据组成 按照IEEE浮点标准存储浮点数时,一个float型的值由1个符号位(最左边的位或最高有效位)、8个指数位以及23个小数位依次组成: 符号位为0时表示正数,为1…...

机器视觉在虚拟现实与增强现实中的作用

机器视觉在虚拟现实(VR)和增强现实(AR)中发挥着至关重要的作用。这些技术的核心是计算机视觉领域,重点是让计算机具有“看到”和理解周围世界的能力。 在虚拟现实中,计算机视觉用于创建和处理用户所见的虚…...

红黑数原理及存在原因

我红黑树那么牛,你们为什么不用?_哔哩哔哩_bilibili 面试时经常会被问到红黑树,它到底有什么优点呢? 对于查找数据,数组二分查询速度最快,时间复杂度为O(logN)。但是如果增加和删除数据,数组就…...

Ansible入门—安装部署及各个模块应用案例(超详细)

目录 前言 一、环境概况 修改主机名(可选项) 二、安装部署 1.安装epel扩展源 2.安装Ansible 3.修改Ansible的hosts文件 4.生成密钥 三、Ansible模块使用介绍 Command模块 Shell模块 User模块 Copy模块 File模块 Hostname模块 Yum模块 Se…...

Spring Boot 3系列之-启动类详解

Spring Boot是一个功能强大、灵活且易于使用的框架,它极大地简化了Spring应用程序的开发和部署流程,使得开发人员能够更专注于业务逻辑的实现。在我们的Spring Boot 3系列之一(初始化项目)文章中,我们使用了Spring官方…...

muduo源码剖析之Timer定时器

简介 Timer 类是 muduo 网络库中的一个定时器类,用于在指定的时间间隔后执行某个任务。 Timer 类提供了一系列的方法来创建、启动、停止和删除定时器,以及设置定时器的时间间隔和回调函数等。 在 muduo 网络库中,Timer 类被广泛应用于各种…...

CocosCreator:背景滚动 、背景循环滚动

.CocosCretor版本3.2.1 编辑器VScode 制作游戏背景的循环滚动 import { _decorator, Component, Node } from cc; const { ccclass, property } _decorator;ccclass(MoveingSceneBg) export class MoveingSceneBg extends Component {property(Node)bg01: Node null!;proper…...

中远麒麟堡垒机SQL注入漏洞复现

简介 中远麒麟堡垒机用于运维管理的认证、授权、审计等监控管理,在该产品admin.php处存在SQL 注入漏洞。 漏洞复现 FOFA语法: body"url\"admin.php?controlleradmin_index&actionget_user_login_fristauth&username" 或者 c…...

ActiveMq学习⑨__基于zookeeper和LevelDB搭建ActiveMQ集群

引入消息中间件后如何保证其高可用? 基于zookeeper和LevelDB搭建ActiveMQ集群。集群仅提供主备方式的高可用集群功能,避免单点故障。 http://activemq.apache.org/masterslave LevelDB,5.6版本之后推出了LecelDB的持久化引擎,它使…...

Ansible概述以及模块

目录 一、Ansible概述: 1. Ansible是什么: 2. Ansible的作用: 3. Ansible的特性: 二、Ansible 环境安装部署: 1. 管理端安装 ansible: 2. ansible 目录结构: 3. 配置主机清单: 4. 配置密钥对验证: 三、an…...

星思半导体系统级通信测试实验室设备齐全,为卫星通信芯片验证提供坚实保障

随着政府工作报告首次为卫星互联网“定调”,资本市场的聚光灯迅速转向这条黄金赛道。业内观察指出,2026年的市场关注点更加务实,聚焦于真正具备核心技术、能参与国际竞争的上游“硬科技”企业。在政策与资本的同频共振下,以星思半…...

【农用无人机】dijkstra算法无人机农田农药喷洒路径规划【含Matlab源码 15284期】

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab领域博客之家💞&…...

互联网大厂Java面试场景深度剖析:核心技术栈与代码案例实录

互联网大厂Java面试场景深度剖析:核心技术栈与代码案例实录 在互联网大厂面试Java岗位,除了扎实的技术基础,还离不开对核心技术栈的全方位掌握。本文结合真实对话场景和代码案例,为求职者深度剖析面试流程与思路。 面试场景趣味对…...

手把手教你用fft npainting lama去除图片水印,效果惊艳!

手把手教你用fft npainting lama去除图片水印,效果惊艳! 1. 引言:告别繁琐修图,AI一键去水印 你是否遇到过这样的情况:找到一张完美的图片素材,却被讨厌的水印破坏了整体美感?传统修图软件操作…...

通义千问3-Reranker-0.6B开箱即用:国产信创服务器上的语义裁判快速搭建

通义千问3-Reranker-0.6B开箱即用:国产信创服务器上的语义裁判快速搭建 1. 为什么需要专业的语义重排序模型? 在信息爆炸的时代,我们每天都要面对海量的文本数据。无论是企业知识库、电商搜索还是智能客服,传统的关键词匹配就像…...

如何彻底告别网盘下载烦恼:八大主流网盘直链下载助手完全指南

如何彻底告别网盘下载烦恼:八大主流网盘直链下载助手完全指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…...

《AI应用实战课》第八课:大语言模型与垂直行业问答系统——从通识智能到产业落地的最后一公里

引言:站在巨变的时代路口 欢迎来到《AI 应用实战课》的最终章。如果说前七节课我们是在构建AI的“大脑”与“感官”——从数据的感知、特征的提取,到逻辑的推理、模式的识别——那么这第八节课,我们将为这个大脑注入最核心的“灵魂”&#xf…...

NEURAL MASK RMBG-2.0技术演进:从RMBG-1.0到ART-ENGINE的架构升级

NEURAL MASK RMBG-2.0技术演进:从RMBG-1.0到ART-ENGINE的架构升级 1. 背景与挑战 传统的图像抠图工具在面对复杂场景时往往力不从心。当遇到细微的发丝、半透明物体或者复杂的光影交错时,这些工具要么产生锯齿状的边缘,要么无法准确区分主体…...

Paper2Slides API深度解析:FastAPI后端架构与RESTful接口设计终极指南

Paper2Slides API深度解析:FastAPI后端架构与RESTful接口设计终极指南 【免费下载链接】Paper2Slides "Paper2Slides: From Paper to Presentation in One Click" 项目地址: https://gitcode.com/gh_mirrors/pap/Paper2Slides Paper2Slides是一个革…...

PPT如何设置部分内容不可编辑?教你锁定部分对象,只允许修改指定区域

制作好的PPT发给同事或客户后,最担心的就是对方随意拖动图片、删除Logo、修改背景或打乱排版,导致精心设计的页面面目全非。很多人以为PPT没有类似Word的“部分限制编辑”功能,其实不然——PPT提供了多种灵活的保护方式,可以让你锁…...