n 维数组(张量)关于轴 axis 的理解

本文将从两个角度来理解 “轴” 的概念,着重阐述 1.2 节中的理解,并借此加深问题一和问题二的理解。
一、问题:如何理解 numpy 数组在轴上的 sum 操作
二、问题:torch 张量中的维度 dim 也是如此

一、问题:如何理解 numpy 数组在轴上的 sum 操作

a = np.ones((2, 3, 4), dtype=int)
a.sum(axis=0)
a.sum(axis=1)
a.sum(axis=2)

注:以下与 axis 有关的索引或计数,都从 0 开始,而不是从 1 开始。

1.1 在 axis 上的操作可理解为在该轴上对所有切片的操作

a.sum(axis=0) 等价于 a[0, :, :] + a[1, :, :]

  • 表示在第 0 轴上所有切片的求和。
  • 数组 a 在第 0 轴上的长度是 2,即 np.ones(2, 3, 4) 中的 2,所以所以 sum 操作有两个切片求和。

a.sum(axis=1) 等价于 a[:, 0, :] + a[:, 1, :] + a[:, 2, :]

  • 表示在第 1 轴上所有切片的求和。
  • 数组 a 在第 1 轴上的长度是 3,所以 sum 操作有三个切片进行求和。

a.sum(axis=2) 等价于 a[:, :, 0] + a[:, :, 1] + a[:, :, 2] + a[:, :, 3]

  • 表示在第 2 轴上所有切片的求和。
  • 数组 a 在第 2 轴上的长度是 4,所以 sum 操作有四个切片进行求和。

1.2 axis 代表 “方括号” 的位置

为了理解 aixs 的意义,我们作如下约定:
① 第零层方括号指下图中最外层的黄色方括号 。对于任何一个 n 维数组来说,最外层的方括号只有一对,因为这是一个 n 维数组而不是两个。
② 第一层方括号指下图中的紫色方括号,共 2 对紫色方括号,即两个第一层。
③ 第二层方括号指下图中的蓝色方括号,在每对紫色内有 3 对蓝色方括号,即三个第二层。
④ 第三层方括号指下图中各绿色的数字元素,在每对蓝色内有 4 个绿色数字
⑤ 那么 a = np.ones(2, 3, 4) 中的 234 即对应上面三句话。
⑥ 如果相对黄色方括号而言,我们也称成对的紫色方括号为一个元素,即黄色方括号内有两个紫色元素,依此类推。

n 维数组 a 的模样

(1)那么, 对于 sum(axis=0) ,axis 0 指 np.ones(2, 3, 4) 中第零个位置的 2,表示第零层内有两个紫色元素。就是对两组紫色括号进行聚合操作,即先把两组紫色括号看成 sum 操作的两个输入,再对应各数字元素相加,结果如下图:

在这里插入图片描述

(2) 对于 sum(axis=1) ,axis 1 指 np.ones(2, 3, 4) 中第一个位置(从零开始数)的 3,表示第一层内有三个蓝色元素。就是对三组蓝色括号(暂时只看第一组紫色内的三组蓝色,其他紫色组内同理)进行聚合操作,即把三组紫色括号看成 sum 操作的三个输入,再对应数字相加,得到 [3,3,3,3]。但是有两组紫色,每组紫色内的蓝色都要各自聚合,所以最后的结果是两组 [3,3,3,3],如下图:

在这里插入图片描述

(3)对于 sum(axis=2) ,axis 2 指 np.ones(2, 3, 4) 中第二个位置(从零开始数)的 4,表示第二层内有四个绿色元素。就是把各组蓝色内的数字先聚合,即1+1+1+1=4;其他组蓝色中的绿色数字都要按此运算,一共有6组蓝色,所以有6个4。

在这里插入图片描述

二、torch 张量中的维度 dim 也是如此

先定义了两个 shape 均为 (2,3,4) 的张量 X,Y,如下所示:

在这里插入图片描述

torch.cat() 是将两个张量拼接为一个,其中参数 dim 指定拼接的维度。
(1)当 dim = 0,即将 X 的第零层内的两组方括号与 Y 的第零层内的两组方括号直接拼接。
在这里插入图片描述在这里插入图片描述

(2)当 dim = 1,即将 X 的第一层内的三组方括号与 Y 的第一层内的三组方括号直接拼接,融成新的第一层。由于第零层内有两个元素,所以有两个第一层,另外一个第一层也是同理拼接。

在这里插入图片描述
在这里插入图片描述

(3)当 dim = 2,即将 X 的第二层内的四个数字与 Y 的第二层内的四个数字直接拼接,融成新的第二层。

在这里插入图片描述
在这里插入图片描述

三种情况的拼接结果如下图所示:

在这里插入图片描述

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

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

相关文章

Vscode辅助编码AI神器continue插件

案例效果 1、安装或者更新vscode 有些版本的vscode不支持continue,最好更新到最新版,也可以直接官网下载 https://code.visualstudio.com/Download 2、安装continue插件 搜索continue,还未安装的,右下脚有个Install,点击安装即可 <

操作手册:集成钉钉审批实例消息监听配置

此文档将记录在慧集通平台怎么实现钉钉审批实例结束或发起或取消时&#xff0c;能够实时的将对应的实例数据抓取出来送入第三方系统 集成平台配置 1、配置中心库&#xff0c;存储钉钉发送的消息&#xff0c;可以忽略&#xff0c;若不配置&#xff0c;则钉钉的消息将不再记录到…

mysql -> 达梦数据迁移(mbp大小写问题兼容)

安装 注意后面初始化需要忽略大小写 初始化程序启动路径 F:\dmdbms\tool dbca.exe 创建表空间&#xff0c;用户&#xff0c;模式 管理工具启动路径 F:\dmdbms\tool manager.exe 创建表空间 创建用户 创建同名模式&#xff0c;指定模式拥有者TEST dts 工具数据迁移 mysql -&g…

MacBook Linux 树莓派raspberrypi安装Golang环境

个人还是比较喜欢用go语言开发,比java开发效率高,以后会持续更新golang相关的博客 MacBook安装golang环境 官方下载地址: https://golang.google.cn/dl/ 官方下载Mac对应版本 tar.gz包 OS macOS 版本 x86-64 #解压 tar -zxvf xxx.tar.gz #配置环境变量 vim ~/.zshrc #文件最后…

基于LabVIEW的BeamGage自动化接口应用

设置 National Instruments LabVIEW可执行程序需要被配置为使用.NET 4框架。.NET允许自定义可执行程序的运行方式。可通过以下方式实现&#xff1a; 在LabVIEW安装目录中创建一个名为LabVIEW.exe.config的文本文件&#xff08;例如&#xff1a;C:\Program Files\National Ins…

SQL概述

SQL SQL&#xff08;Structured Query Language&#xff09;是“结构化查询语言”&#xff0c;它是对关系型数据库的操作语言。它可以应用到所有关系型数据库中。如&#xff1a;MySQL、Oracle、SQL Server 等。除了 SQL 标准之外&#xff0c;大部分 SQL 数据库程序都拥有它们自…

WandB使用笔记

最近看代码&#xff0c;发现代码中有wandb有关的内容&#xff0c;搜索了一下发现是一个模型训练工具&#xff0c;然后学习了一下&#xff0c;这里记录一下使用过程&#xff0c;方便以后查阅。 WandB使用笔记 登录WandB 并 创建团队安装 WandB 并 登录模型训练过程跟踪模型版本管…

中国科技统计年鉴EXCEL版(2021-2023年)-社科数据

中国科技统计年鉴EXCEL版&#xff08;2021-2023年&#xff09;-社科数据https://download.csdn.net/download/paofuluolijiang/90028724 https://download.csdn.net/download/paofuluolijiang/90028724 中国科技统计年鉴提供了从2021至2023年的详尽数据&#xff0c;覆盖了科技…

Cursor无限续杯——解决Too many free trials.

前情提要 我们都知道Cursor对新用户是有14天且500条免费限制的。 一般情况下&#xff0c;当14天过期&#xff0c;是可以注销账户再重新注册&#xff0c;这样就可以继续拥有14天的体验时长。 但是&#xff01;&#xff01;如果使用超过500次&#xff0c;Cusor就会把你的电脑I…

深入学习RabbitMQ的Direct Exchange(直连交换机)

RabbitMQ作为一种高性能的消息中间件&#xff0c;在分布式系统中扮演着重要角色。它提供了多种消息传递模式&#xff0c;其中Direct Exchange&#xff08;直连交换机&#xff09;是最基础且常用的一种。本文将深入介绍Direct Exchange的原理、应用场景、配置方法以及实践案例&a…

Mysql--基础篇--事务(ACID特征及实现原理,事务管理模式,隔离级别,并发问题,锁机制,行级锁,表级锁,意向锁,共享锁,排他锁,死锁,MVCC)

在MySQL中&#xff0c;事务&#xff08;Transaction&#xff09;是一组SQL语句的集合&#xff0c;这些语句一起被视为一个单一的工作单元。事务具有ACID特性&#xff0c;确保数据的一致性和完整性。通过事务&#xff0c;可以保证多个操作要么全部成功执行&#xff0c;要么全部不…

Linux下文件重定向

文章目录 一 重定向的基本使用1. 标准输出重定向2. 标准错误输出重定向3. 同时重定向标准输出和标准错误输出4. 输入重定向&#xff08;<&#xff09; 二 重定向基本原理1. 文件描述符概念2.什么是文件描述符3. 文件描述符的分配规则初始分配与默认对应关系动态分配规则 4. …

Android车载音频系统目录

目录 第一章 1.1 Android Automotive&#xff08;一&#xff09; 1.2 Android Automotive&#xff08;二&#xff09; 1.3 Android Automotive&#xff08;三&#xff09; 第二章 2.1 Android车载音频系统概览 2.2 车载音频焦点 2.3 车载音频配置 2.4 Audio control HAL…

【Linux】深入理解文件系统(超详细)

目录 一.磁盘 1-1 磁盘、服务器、机柜、机房 &#x1f4cc;补充&#xff1a; &#x1f4cc;通常网络中用高低电平&#xff0c;磁盘中用磁化方向来表示。以下是具体说明&#xff1a; &#x1f4cc;如果有一块磁盘要进行销毁该怎么办&#xff1f; 1-2 磁盘存储结构 ​编辑…

Spring项目创建流程及配置文件bean标签参数简介

1. 项目搭建流程 1. pom.xml中引入依赖Spring-webMVC <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><…

PHP进阶-在Ubuntu上搭建LAMP环境教程

本文将为您提供一个在Ubuntu服务器上搭建LAMP&#xff08;Linux, Apache, MySQL, PHP&#xff09;环境的完整指南。通过本文&#xff0c;您将学习如何安装和配置Apache、MySQL、PHP&#xff0c;并将您的PHP项目部署到服务器上。本文适用于Ubuntu 20.04及更高版本。 一、系统更新…

Web应用安全-漏洞扫描器设计与实现

摘 要 随着Web2.0、社交网络、微博等一系列新型的互联网产品的诞生&#xff0c;基于Web环境的互联网应用越来越广泛&#xff0c;企业信息化的过程中各种应用都架设在Web平台上。Web应用的迅速发展也引起黑客们的强烈关注&#xff0c;接踵而至的就是Web安全威胁的凸显&#xff…

【漏洞工具】小米路由器任意文件读取漏洞python图形化框架利用工具(poc|exp)

there is no tomorrow 工具利用 漏洞扫描 漏洞利用 poc 本文工具、源码获取 因本工具涉及到源码分享&#xff0c;如有需求&#xff0c;请私聊圈主 文笔生疏&#xff0c;措辞浅薄&#xff0c;望各位大佬不吝赐教&#xff0c;万分感谢。 免责声明&#xff1a;由于传播或利用…

【Logstash03】企业级日志分析系统ELK之Logstash 过滤 Filter 插件

Logstash 过滤 Filter 插件 数据从源传输到存储库的过程中&#xff0c;Logstash 过滤器能够解析各个事件&#xff0c;识别已命名的字段以构建结构&#xff0c; 并将它们转换成通用格式&#xff0c;以便进行更强大的分析和实现商业价值。 Logstash 能够动态地转换和解析数据&a…

游戏关卡设计的常用模式

游戏关卡分为很多种&#xff0c;但常用的有固定套路&#xff0c;分为若干种类型。 关卡是主角与怪物、敌方战斗的场所&#xff0c;包括装饰物、通道。 单人游戏的关卡较小&#xff0c;偏线性&#xff1b; 联机/MMO的关卡较大&#xff0c;通道多&#xff0c;自由度高&#xf…