PyTorch笔记:标量向量矩阵张量+维度+常用API+计算图+自动微分计算

PyTorch

张量

默认数据类型是torch.float32

维度

  • 0:标量
  • 1:向量
  • 2:矩阵

标量&向量&矩阵&张量

  • 标量:0维空间中一个点
  • 向量:1维空间中一条线
  • 矩阵:2维空间中一个面
  • 三维张量:三维空间中一个体
  • 向量由标量组成,矩阵由向量组成,三维张量由矩阵组成

常用API

  • 返回张量中元素的个数
    • torch.numel
  • 对角线为1的张量
    • torch.eye
  • 张量为一个数才能使用
    • a.item()
  • 张量转换为int(float、short、long)类型
    • a.int()
    • a.to(dtype=torch.int32)
  • 交换张量两个维度
    • torch.transpose(a, 0, 1)
  • 矩阵乘法
    • 二维矩阵乘法 torch.mm
    • 多维矩阵乘法 torch.matmul
  • 逐元素乘法
    • t1 * t2 == torch.mul == torch.multiply
  • 点积
    • torch.dot
    • 两个向量对应元素相乘后的和
    • 只能用于一维,且元素个数一样
  • 拼接
    • torch.cat
    • 可指定维度,默认维度dim=0
  • 压缩
    • torch.squeeze
  • 最大元素值索引
    • torch.argmax
  • 判等
    • torch.eq
  • 求平均值
    • torch.mean

计算图

  • 张量复杂计算过程抽象为一张图
    • 张量–>张量运算–>张量–>…
    • 节点–>函数关系–>节点–>…
    • 节点
      • 叶子节点
        • is_leaf
      • 输出节点
        • 最后计算得出的张量
      • 中间节点
        • 除了叶子节点和输出节点外的节点
        • 连接和转换信息
  • 创建可微分张量,整个过程关系会默认被记录
    • grad_fn
  • 阻断跟踪(记录)
    • with torch.no_grad(): …
      • 语句块代码不进行计算图记录
    • detach()
      • 创建张量和原始张量共享数据

自动微分计算

  • 单标量
  • 多标量
  • 向量
  • loss.backward()
  • 梯度清零
    • 梯度累加存储数据问题

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

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

相关文章

刷题第10天

代码随想录刷题第10天 |● 239. 滑动窗口最大值 ● 347.前 K 个高频元素 239. 滑动窗口最大值 唉&#xff0c;好难&#xff0c;先记个思路吧 class Solution { private:class MyQueue { //单调队列&#xff08;从大到小&#xff09;public:deque<int> que; // 使用deq…

章鱼网络进展月报 | 2024.2.1-2.29

章鱼网络大事摘要 1、Omnity 完成了核心组件的原型开发&#xff0c;正在测试&#xff0c;未来将首先支持 Runes 资产跨链。 2、$NEAR Restaking 质押总量超过400万美元。 3、章鱼网络受邀参加 ETHDenver 2024&#xff0c;并且与 ICP 共同组织活动&#xff0c;介绍 Omnity 的…

速看!2024深圳国际电子化工新材料展览会

2024深圳国际电子化工新材料展览会 Shenzhen International Exhibition of New Electronic and chemical materials2024 基本信息&#xff1a; 时间&#xff1a;2024年6月26&#xff5e;28日 地点&#xff1a;深圳国际会展中心 组织机构&#xff1a; 主办单位&#xff1a…

【C语言】linux内核netif_receive_skb

一、中文注释 /*** netif_receive_skb - 从网络处理接收缓冲区* skb: 要处理的缓冲区** netif_receive_skb() 是主要的数据接收处理函数。* 它总是成功的。由于拥塞控制或协议层的原因&#xff0c;缓冲区可能在处理过程中被丢弃。** 这个函数只能在软中断&#xff08;softirq&…

洛阳旅游攻略

洛阳旅游攻略 第一天&#xff08;抵达当天&#xff09;&#xff1a; 1.先将行李放到酒店—2.老城十字街&#xff08;打车可能会堵车&#xff09;—3.洛邑古城—4.丽景门&#xff08;步行&#xff09; 第二天&#xff1a; 1.早起吃早餐—&#xff08;打车三十分钟&#xff0c…

guava的使用

对数组操作前判断是否会越界&#xff1a; List<String> s new ArrayList<>();System.out.println(Preconditions.checkElementIndex(2,s.size(),"下标长度超过了")); 是否为空 String s null;System.out.println(Preconditions.checkNotNull(s)); 判空…

Android使用Sensor.TYPE_STEP_COUNTER计步器传感器进行步数统计

1、首先&#xff0c;申请权限 必须声明 ACTIVITY_RECOGNITION 权限&#xff0c;以便您的应用在运行 Android 10 (API 级别 29) 或更高版本的设备上使用此传感器。 Manifest.xml也记得声明 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {Log.d(TAG, "[权限]&quo…

Docker的安装跟基础使用一篇文章包会

目录 国内源安装新版本 1、清理环境 2、配置docker yum源 3、安装启动 4、启动Docker服务 5、修改docker数据存放位置 6、配置加速器 现在我们已经完成了docker的安装和初始配置。以下为基本测试使用 自带源安装的版本太低 docker官方源安装的话速度太慢了 所以本篇文…

iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践

移动端的自动化测试&#xff0c;最常见的是 Android 自动化测试&#xff0c;我个人觉得 Android 的测试优先级会更高&#xff0c;也更开放&#xff0c;更容易测试&#xff1b;而 iOS 相较于 Android 要安全稳定的多&#xff0c;但也是一个必须测试的方向&#xff0c;这个系列文…

STM32(18)I2C

串口通信缺点 一个设备就需要一个串口&#xff0c;单片机可能没有那么多串口外设 总线/非总线 主机&#xff1a;负责管理总线&#xff0c;可控制波特率、数据的通信方向 波特率&#xff1a;由主机产生波特率信号 数据的传输 每个从机都有7位地址&#xff0c;最后移位是读&a…

力扣--动态规划516.最长回文子序列

思路分析&#xff1a; 创建一个二维动态规划表dp&#xff0c;其中dp[i][j]表示在子串s[i...j]中的最长回文子序列的长度。初始化基本情况&#xff1a;对角线上的元素dp[i][i]都为1&#xff0c;因为单个字符本身就是长度为1的回文子序列。从字符串末尾向前遍历&#xff0c;填充…

IPsec VPN协议框架

IPsec是IETF&#xff08;Internet Engineering Task Force&#xff09;制定的一组开放的网络安全协议。它并不是一个单独的协议&#xff0c;而是一系列为IP网络提供安全性的协议和服务的集合&#xff0c;包括认证头AH&#xff08;Authentication Header&#xff09;和封装安全载…

java排序简单总结和推荐使用套路(数据排序,结构体排序)

了解int和Integer的区别 int是Java的基本数据类型&#xff0c;用于表示整数值。Integer是int的包装类&#xff0c;它是一个对象&#xff0c;可以包含一个int值并提供一些额外的功能。 Java集合框架中的集合类&#xff08;如List、Set、Map&#xff09;只能存储对象&#xff0c;…

计算机基础专升本笔记十三-PowerPoint常用快捷键大全

计算机基础专升本笔记十三-PowerPoint常用快捷键大全 PowerPoint常用快捷键 按键作用Ctrl A全选表格Ctrl B字体加粗Ctrl C复制Ctrl D文本、图形、图片等距复制Ctrl E居中Ctrl F查找Ctrl G组合&#xff0c;可统一移动&#xff0c;改变大小Ctrl H隐藏鼠标箭头Ctrl I斜…

第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组 统计子矩阵

#include<iostream> #include<algorithm> #include<cstring> #include<string> #include<vector> #include<queue>using namespace std;int cnt,temp; int n,m,K; int a[505][505]; int pre[505][505];//二维前缀和void sol() {cin>>…

如何从产品的角度做好内容营销?媒介盒子支招

内容运营就是指将生产传播内容并进行重组&#xff0c;去满足用户的内容消费需求&#xff0c;想要提高内容运营的效果&#xff0c;媒介盒子认为可以从产品出发&#xff0c;将内容运营与品牌产品相结合。那么应该怎么做呢&#xff1f;接下来就让媒介盒子告诉你。 一、 场景化内容…

MySQL 空间碎片详解

文章目录 前言1. 空间碎片如何产生2. 空间碎片如何查看3. 空间碎片如何回收后记 前言 MySQL 数据库在运行过程中&#xff0c;随着时间的推移&#xff0c;可能会出现空间碎片的问题。空间碎片是指数据库表中不再使用的空间&#xff0c;但由于各种原因&#xff0c;这些空间并没有…

小程序嵌套H5-真机突然无法使用

今天测试反馈了一个问题&#xff0c;测试环境的小程序突然就登录不了了。我自己拿手机扫码登录是正常的&#xff0c;用其他同事的手机扫描登录也是正常。 下面是排查的路线&#xff1a; 1、其他环境使用测试手机扫码登录是否正常&#xff1f;(正常) 2、H5地址改为本地IP&#…

【漏洞复现】CVE-2023-27178 GDidees CMS任意文件上传漏洞复现

漏洞描述 漏洞编号&#xff1a;CVE-2023-27178 GDidees CMS是法国一款开源的网站管理工具&#xff0c;可用于创建站点、照片或视频库。GDidees CMS 3.9.1及以下版本存在任意文件上传漏洞&#xff0c;允许未经授权的攻击者上传精心构造的文件并执行任意代码。 影响版本 GDide…

Linux运维_Bash脚本_编译安装Glib-2.78.4

Linux运维_Bash脚本_编译安装Glib-2.78.4 Bash (Bourne Again Shell) 是一个解释器&#xff0c;负责处理 Unix 系统命令行上的命令。它是由 Brian Fox 编写的免费软件&#xff0c;并于 1989 年发布的免费软件&#xff0c;作为 Sh (Bourne Shell) 的替代品。 您可以在 Linux 和…