深入理解张量维度的真正含义

news2024/11/26 14:31:13

在人工智能领域,比如深度学习,机器学习,张量这一概念被频繁使用。虽然网上有很多关于张量的文章,但基本都是废话太多,而且复制粘贴说不到重点。

今天我就来讲解一下张量维度的真正含义。

首先. 张量并不是一个简单多维数组的概念

为了说明这个问题,用代码解释最为清楚(这里用pytorch作为演示工具):

>>> import torch
>>> torch.rand(2,3,4)

tensor([[[0.3893, 0.0926, 0.5927, 0.0362],
         [0.7488, 0.1284, 0.1658, 0.6883],
         [0.9692, 0.6096, 0.3811, 0.6348]],

        [[0.3132, 0.4856, 0.5010, 0.5382],
         [0.4209, 0.9758, 0.6052, 0.8183],

         [0.0462, 0.9005, 0.9736, 0.8771]]])

我不知道各位有没有从上面的例子,发现到规律没有?

(2,3,4)是上面这个张量的形状没错,但是这不是重点。重点在于: 你怎么去理解这个维度在上面数组中的具体含义的?

首先我给出一个结论:在多维张量中,张量维度中的最后一个维度表示了张量的最小单位,也是该最小单位的列数/长度。

我相信:这是网上从来没有人告诉过你的一个关键特征。因为他们都不懂,要么就是故意不说

你可以看到上面这个三维张量的最小单位:[0.3893, 0.0926, 0.5927, 0.0362]它的列数刚好是4

为了印证这一点,我把上面的张量从3维扩展4维:

>>> torch.rand(2,3,4,5)
tensor([[[[0.2797, 0.8020, 0.4698, 0.5959, 0.3229],
          [0.9926, 0.6175, 0.1324, 0.1322, 0.6438],
          [0.2046, 0.3593, 0.8734, 0.1032, 0.4316],
          [0.2191, 0.5165, 0.7173, 0.2843, 0.7192]],

         [[0.7188, 0.9162, 0.7454, 0.0712, 0.0822],
          [0.3084, 0.4359, 0.3200, 0.6938, 0.8972],
          [0.8860, 0.0275, 0.9120, 0.9609, 0.4668],
          [0.3209, 0.4625, 0.6925, 0.3628, 0.5243]],

         [[0.5671, 0.5452, 0.8791, 0.0238, 0.9310],
          [0.9554, 0.4225, 0.1282, 0.0430, 0.1930],
          [0.3095, 0.3146, 0.7911, 0.9851, 0.0080],
          [0.6860, 0.2170, 0.0167, 0.3191, 0.1569]]],


        [[[0.0101, 0.4069, 0.0368, 0.0711, 0.8693],
          [0.6945, 0.0231, 0.6840, 0.1747, 0.9457],
          [0.8171, 0.0382, 0.4268, 0.0348, 0.0104],
          [0.9574, 0.7956, 0.6939, 0.1443, 0.4272]],

         [[0.2437, 0.0244, 0.6358, 0.7854, 0.5776],
          [0.8892, 0.5903, 0.3915, 0.0739, 0.8040],
          [0.1287, 0.8313, 0.2242, 0.3242, 0.6272],
          [0.5183, 0.3957, 0.9779, 0.7776, 0.5292]],

         [[0.4206, 0.0818, 0.5058, 0.9838, 0.7958],
          [0.1617, 0.9986, 0.8095, 0.8501, 0.9051],
          [0.3168, 0.5005, 0.6576, 0.3395, 0.0077],
          [0.5153, 0.1495, 0.5506, 0.5251, 0.3986]]]])

同样可以看到这个四维张量的最小单元:[0.2797, 0.8020, 0.4698, 0.5959, 0.3229]

它的列数/长度是5,跟它的形状(2,3,4,5)中最后一个维度刚好对应。

所以,首先多维张量的维度一定要倒过来看!

那么这个4维张量的这么中括号,我们该从哪里看起呢?

从上面的图片中可以看到端倪:

在两个中括号包围的里面: 以张量最小单位,四个为一组。4刚好是倒数第二维度4的大小。

所以,每递增一个中括号,当前维度就会逆向往上递增一个维度。

注意: 这里维度都是倒过来看的

 现在继续递增中括号==》

 

可以看到当中括号递增到第三层时,它的里面刚好有3组,也就是倒数第三维度的大小。

如果我们继续往上递增维度呢?

此时可以看到因为上面的三个中括号后面有个逗号,说明有个后面的同级的三维。

那总共有几个呢?需要继续升维。

 当递增到四个中括号时,也就是倒数最后一个维度,也是顺数第一维度:2

说明它底下存在两个三维元素。而上面的三个中括号后面的逗号只出现过一次,正好印证了这一点,确实只有两个三维元素。

所以,关于张量的维度总结起来有以下几点:

1.  在多维张量中,张量维度中的最后一个维度表示了张量的最小单位,也是该最小单位的列数/长度。

2.  张量的维度应该倒过来看而且每递增一个中括号,当前维度就会逆向往上递增一个维度。

3.  张量当前维度大小的意义表示它子维度成员的数量

再举一个张量实际应用的例子:

比如以下图像张量:

(samples, height, width,channel, colorDepth)

这个张量代表了:图像样本的数量,图像样本的长,宽,色彩通道以及色深。

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

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

相关文章

STM32F103驱动VL53L0X激光测距模块

STM32F103驱动VL53L0X激光测距模块 简介引脚定义STM32F103ZET6开发板与VL53L0X模块接线测试代码实验结果 简介 TOF 是飞行时间(Tlme of Flight)技术的缩写,即传感器发出经过调制的近红外光,遇到物体后反射,传感器通过…

bug:file name too long文件名超出系统最大限制

各操作系统支持最长的文件和目录名称长度(Linux、Win、Mac) 今天开发需求的时候发现无法新建文件,提示file name too lang,于是翻阅和查询了一些资料,发现不同操作系统下文件名和目录名最长的长度不同。 操作系统文件名…

游戏如何应对虚拟定位问题

在游戏系统设计中,排行榜这一设计可谓是十分巧妙。它可以充分调动玩家的“胜负欲”,给予玩家前进的目标及动力,满足玩家的心理需求。 排行榜的设计使用范围广,对游戏留存、付费等指标提升效果出众,在不少游戏中都可以…

玩机搞机---某些安卓定制机解除系统安装限制的思路与分析过程

定制机的意义不多做解释,懂的人都明白. 在一些定制机中会限制用户安装app。当你使用第三方工具或者adb指令安卓app是他会提示de xxx.apk. autostarter is not auth,install failed!等等类似的提示,在解决某些定制系统中类似问题的过程中,基本…

Unity知识记录--项目升级URP

URP是指Unity的通用渲染管线,此处主要针对原有项目进行升级使用,但并不是所有的内容都可以直接通过升级完成,直接使用的Unity默认的shader通常可以完成直接升级,自己编写的shader通常需要重做。 首先我们先要安装这个Package&…

汇报方案设计方案规划方案资源下载

标题汇报方案设计方案规划方案资源下载https://wheart.cn/so/home?mdw&tag%E5%AE%89%E5%85%A8文章标签事业单位人事人才信息综合管理系统建设设计报价方案人事系统,人事人才,事业单位,工资系统,职称系统xx纪检委智慧监督平台建设方案汇报.docx建设方案,规划设计,汇报方案营…

程序员如何走向世界!

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

训练速度提升300倍,Niantic最新VPS视觉定位方案亮相

近年来在谷歌、Niantic等推动下,视觉定位对于AR应用的重要性越来越明显,尤其是在室内导航场景,定位精度可超越传统GPS方案。为了进一步提升视觉定位、深度视觉地图构建的准确性,Niantic Labs在CVPR 2023期间公布了ACE方案&#xf…

[MySql]表的增删查改

目录 前言: 1.插入数据 2.查询数据 2.1全列查询 2.2指定查询 2.3别名 2.4去重 2.5排序 2.6条件查询 2.7聚合查询 2.7.1group by语句 2.7.2havin语句 2.8联合查询 2.8.1内连接 2.8.2外连接 2.8.3自连接 2.8.4子查询 3.修改 4.删除 前言: 本次大多数使用…

【计算机视觉】MobileSAM论文解读:比SAM小60倍,比FastSAM快4倍,速度和效果双赢

文章目录 一、导读二、摘要三、Introduction三、Related work3.1 SAM:泛化和通用功能性3.2 ViT:轻巧高效 四、Mobile-Friendly SAM4.1 Background and Project Goal4.1.1 Background on SAM4.1.2 Project goal 4.2 Proposed Method4.2.1 耦合蒸馏4.2.2 从…

这个工具,补齐了 JMeter性能分析最后一公里短板

要说现在企业中主流的性能测试工具是什么? 答案肯定有 JMeter。 但是Jmeter 贵为测试工具界的“大牛”,在性能分析能力方面,还是有些欠缺的。 像Allen巨佬在高级性能实际教学的过程中就会经常遇到,学生截取一个监听器的图&…

使用传统的jdbc方式操作数据库

现在开发中有了mybatis、jdbcTemplate之后,已经很少公司会直接使用jdbc来连接数据库了,但是无论是mybatis还是jdbcTemplate,其底层都是jdbc。 这篇文章就主要介绍一下怎么通过jdbc来连接数据库。 在这之前,创建数据库jdbc&#xf…

JS相关介绍

1.JS引入: 内部:直接在html文件内部使用script标签调用 外部:另外新建JS文件,再在html文件中调用 2.输入输出: 输入:prompt(请输入您的姓名:) 输出:document.write(你们真是天才) 注…

2.9 Bootstrap 辅助类

文章目录 Bootstrap 辅助类文本背景其他更多实例关闭图标插入符快速浮动内容居中清除浮动显示和隐藏内容屏幕阅读器 Bootstrap 辅助类 下面将讨论 Bootstrap 中的一些可能会派上用场的辅助类。 文本 以下不同的类展示了不同的文本颜色。如果文本是个链接鼠标移动到文本上会变…

【自定义类型】(结构体、枚举、联合)

结构体内存对齐: 计算结构体的大小 结构体成员不是按照顺序在内存中连续存放的而是有一定的对齐规则的 结构体内存对齐的规则: 1、结构体的第一个成员永远放在相比于结构体变量起始位置的偏移量为0的位置。 2、从第二个成员开始,往后的每…

我打赌!这个 SQL 题,大部分人答不出来

周末的时候,一个读者问了我一个很有意思的问题,是关于 MySQL 中 update 加锁的问题。 他用下面这张数据库表,做了个 MySQL 实验的时候。 发现事务 B 的 update 不会阻塞,而事务 C 的 update 会阻塞,都是对 id 10 这条…

使用 uniswap 模拟交易时遇到一个问题

使用 uniswap 模拟交易时遇到一个问题 Error: VM Exception while processing transaction: socket hang upat web3.js:6365:9(39)at send (web3.js:5099:62(29))at <eval>:1:20(11)我的入参是 > eth.sendTransaction({from:0xe26a357fcc5A010421A49B8a5A99Af14CDe2…

Elasticsearch 中的矢量搜索:设计背后的基本原理

作者&#xff1a;Adrien Grand 你是否有兴趣了解 Elasticsearch 用于矢量搜索&#xff08;vector search&#xff09;的特性以及设计是什么样子&#xff1f; 一如既往&#xff0c;设计决策有利有弊。 本博客旨在详细介绍我们如何选择在 Elasticsearch 中构建矢量搜索。 矢量搜索…

科研 | 入门大全

文章目录 1. 读文献1.1 文献查阅与管理、如何快速找到与研究方向相关文章如何快速了解国内外发展现状找到后&#xff0c;怎么高效阅读&#xff1f;需要逐词逐句阅读吗&#xff1f;需要顺序阅读&#xff1f;读完之后&#xff0c;好像懂了&#xff0c;好像也没懂读过的文章&#…

通过GWO算法对8个发电机进行了最佳调度编码(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 通过GWO&#xff08;Grey Wolf Optimization&#xff09;算法对8个发电机进行最佳调度编码是一种优化问题的解决方法。GWO算法灵…