tensor数学运算

news2025/4/18 5:52:58
运算函数
add
sub
mul
div
矩阵相乘matmul
次方pow
平方根及其倒数sqrt 和 rsqrt
向下/向上取整floor / ceil
分离出整数/小数trunc / frac
近似解四舍五入round
裁剪clamp

1、矩阵元素的加减乘除

注意是矩阵间对应位置元素进行加减乘除

add 和 +

a = torch.rand(3,4)
b = torch.rand(4)

a+b
torch.add(a,b)
# 直接用符号或add函数效果一样,且tensor有broadcast自动扩展b的shape为(3,4)

torch.all(torch.eq(a+b,torch.add(a,b))

在这里插入图片描述

sub 和 -

在这里插入图片描述

mul 和 *

在这里插入图片描述

div 和 /

在这里插入图片描述

2、矩阵相乘 matmul和@

三种方式:

1、torch.mm
2、torch.matmul
3、运算符@

#其中,mm只支持2d的tensor,不建议使用。直接用matmul或者运算符@

在这里插入图片描述

以神经网络中的线性层为例:
将shape为(4,784)的x降维度到(4,512)

x = torch.rand(4,784)

w = torch.rand(512,784)
#pytorch的习惯写法是out维度在前,要@运算的时候将w转置即可

(x@w.t()).shape

在这里插入图片描述
多维情况下的matmul
依旧只对后两维矩阵进行相乘,并且还是有broadcast自动扩展机制

a = torch.rand(4, 3, 28, 64)
b = torch.rand(4, 3, 64, 32)
torch.matmul(a,b).shape

b = torch.rand(4, 1, 64, 32)
torch.matmul(a,b).shape

在这里插入图片描述

3、次方运算

① 次方 pow 或 **
a.pow(x)
#a为张量,x为次方数

a = torch.full([2,2],3)
a.pow(2)
a**2

在这里插入图片描述
② 平方根 sqrt
a.sqrt()相当于 a**(0.5)

aa = a**2

aa.sqrt()

aa**(0.5)

在这里插入代码片
③rsqrt
a.rsqrt() 是a.sqrt()结果的倒数
也可以是a.sqrt()**(-1)

aa.rsqrt()

aa.sqrt()**(-1)

在这里插入图片描述
总结:所有的次方运算都可以用pow()或运算符**实现

4、近似解运算

例子:
a=torch.tensor(3.14)
a.floor()向下取整得到3
a.ceil()向上取整得到4
a.trunc()分离出整数部分3
a.frac()分离出小数部分0.14
a.round()四舍五入得到3
在这里插入图片描述

5、裁剪运算

用的较多的是梯度裁剪
在这里插入图片描述

grad = 15 * torch.rand(2,3)
grad.max()

grad

grad.clamp(10)
#只有一个参数10表示限定grad中元素数值最小为10

grad.clamp(9,10)
#限制最小为9,最大为10

在这里插入图片描述

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

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

相关文章

ardupilot开发 ---传感器驱动,外设驱动篇

ardupilot支持不同厂商的传感器,如雷达,声呐,激光,相机等; 支持的通信协议 I2C, SPI, UART (aka Serial) CANBUS 驱动程序的前后台分离 ardupilot中传感器驱动的重要结构是前后分离; Library库调用前端…

Solidity 小白教程:24. 在合约中创建新合约

Solidity 小白教程:24. 在合约中创建新合约 在以太坊链上,用户(外部账户,EOA)可以创建智能合约,智能合约同样也可以创建新的智能合约。去中心化交易所uniswap就是利用工厂合约(Factory&#xf…

天软特色因子看板 (2023.09 第09期)

该因子看板跟踪天软特色因子A02002 (近一月尾盘成交占比(%)),该因子为近一个月尾盘成交量占比均值因子,用以刻画股票在收盘时,主力资金的流动影响。近一月尾盘成交占比(%)越小,表示多方或空方无力量。近一月尾盘成交占比(%)越大&a…

Day_16 结构体

目录 1.结构体 1.1结构体类型的声明 1.结构体的基础知识 2.结构的声明 3.特殊的声明 1.2结构的自引用 1.3结构体变量的定义和初始化 1.4结构体内存对齐 1.怎么对齐的 2.为什么要对齐 3.修改默认对齐数 1.5结构体传参 1.传值调用 2.传地址调用 3.结论 1.6结构…

SOLIDWORKS二次开发

SOLIDWORKS是一套三维设计软件, 采用特征建模、变量化驱动可方便地实现三维建模、装配和生成工程图。SOLIDWORKS软件本身所具有的交互方式,可以使用户对已生成模型的尺寸、几何轮廓和相互约束关系随时进行修改, 而不需要编程。SOLIDWORKS软件本身的方程式可以实现简…

订阅《复现SCI文章系列教程》

写在前面 《小杜生信笔记》准备开启新的订阅专栏**《复现期刊文章系列教程》,本专栏小杜会寻找一些自己感兴趣的文章进行复现(不说百分之百的复现,但是也会百分之八十进行复现)。本期刊的教程代码会全部进行公开(通过订…

uniapp项目实践总结(二十三)网页和小程序应用打包教程

导语:当你的应用程序开发完成后,在发布到互联网之前,需要进行打包操作,包括网页端、小程序端的打包。 目录 准备工作网页打包小程序打包 准备工作 在打包之前,请保证你的 uniapp 应用程序编译到网页、小程序是可以正…

40亿美元!ChatGPT竞争对手Anthropic,再获巨额融资

9月25日下午,生成式AI平台Anthropic在官网宣布,获得亚马逊(Amazon)40亿美元(约292亿元)投资,成为全球生成式AI赛道最高融资之一。 本轮过后,Anthropic的总融资额度达到56亿美元&…

数据结构--堆排序

目录 堆的定义 建立初始化堆的步骤 建立大根堆的代码 大根堆排序的代码 算法效率分析 稳定性 堆的定义 回忆 基于选择排序的特性:选取关键字最小(或者最大)的元素放入到序列里面,知道了大堆和小堆概念,所以将…

解决电脑桌面软件图标变白的问题

文章目录 前言一、软件图标变白的原因二、解决方法1、显示隐藏项目2、清除图标缓存 前言 桌面软件太多了,导致有些杂乱,换了个显示器后,想着将桌面的软件分类,将其放到不同的目录下,结果有些软件放入文件夹后图标变成…

【【萌新的FPGA学习之触摸屏控制LED实验】】

萌新的FPGA学习之触摸屏控制LED实验 触摸屏控制LED实验 触摸按键主要可分为四大类:电阻式、电容式、红外感应式以及表面声波式。根据其属性的不同,每 种触摸按键都有其合适的使用领域。 电阻式触摸按键由多块导电薄膜按照按键的位置印制而成&#xff0c…

链表(单链表、双链表)

前言:链表是算法中比较难理解的部分,本博客记录单链表、双链表学习,理解节点和指针的使用,主要内容包括:使用python创建链表、实现链表常见的操作。 目录 单链表 双链表 单链表 引入链表的背景: 先来看…

Goby 漏洞发布|泛微 E-office flow_xml.php 文件 SORT_ID 参数 SQL 注入漏洞

漏洞名称:泛微 E-office flow_xml.php 文件 SORT_ID 参数 SQL 注入漏洞 English Name: Weaver E-office flow_xml.php file SORT_ID parameter SQL injection vulnerability CVSS core:7.8 影响资产数: 21632 漏洞描述: 泛微…

idea创建同级项目-纠结是SB

idea创建同级项目-纠结是SB 创建方法:

线性约束最小方差准则(LCMV)波束形成算法仿真

常规波束形成仅能使得主波束对准目标方向,从而在噪声环境下检测到目标,但无法对复杂多变的干扰做出响应,所以不能称之为真正意义上的自适应滤波。自适应阵列处理指的是采用自适应算法对空间阵列接收的混合信号进行处理,又可称为自…

【Element-UI】实现动态树、数据表格及分页效果

一、导言 1、引言 在现代软件开发中,动态树、数据表格以及分页效果成为了许多应用的核心需求。随着业务规模和复杂性的增加,我们往往需要展示大量的层级结构数据,并且实现交互性强且高效的操作。 动态树提供了一种组织结构清晰、可伸缩的展示…

提取PDF数据:Documents for PDF ( GcPdf )

在当今数据驱动的世界中,从 PDF 文档中无缝提取结构化表格数据已成为开发人员的一项关键任务。借助GrapeCity Documents for PDF ( GcPdf ),您可以使用 C# 以编程方式轻松解锁这些 PDF 中隐藏的信息宝藏。 考虑一下 PDF(最常用的文档格式之一…

4代码工程结构

产品代码都给你看了,可别再说不会DDD(四):代码工程结构 # 这是一个讲解DDD落地的文章系列,作者是《实现领域驱动设计》的译者滕云。本文章系列以一个真实的并已成功上线的软件项目——码如云(https://www.…

接口自动化测试框架【reudom】

reudom Automated testing framework based on requests and unittest interface. 基于 Unittest 和 Requests 的 接口自动化测试框架 介绍 基于Unittest/Requests的接口自动化测试库 提供脚手架,快速生成接口自动化测试项目。自动生成HTML测试报告。支持用例参数…

「网页开发|前端开发|Vue」09 Vue状态管理Vuex:让页面根据用户登录状态渲染不同内容

本文主要介绍如何通过Vue的状态管理框架Vuex来管理一些被不同组件或不同页面共同使用的数据,然后展示如何通过状态管理用户信息,并且在具体页面获取用户信息,并且根据用户信息的不同展示不同的页面内容。 文章目录 本系列前文传送门一、场景…