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

深度学习的关键数据结构——张量解释

参考英文文章:

https://deeplizard.com/learn/video/Csa5R12jYRgicon-default.png?t=O83Ahttps://deeplizard.com/learn/video/Csa5R12jYRg

什么是张量(Tensor)

神经网络中的输入、输出和变换都是用张量表示的,因此,神经网络编程大量使用张量。张量的概念是其他更具体概念的数学归纳。

以下例子中的每一个都是更一般的张量概念的特定实例:

  • 标量
  • 数组
  • 向量
  • 二维数组
  • 矩阵

我们将上面列出的示例分成两组:

  • 数,数组,二维数组

  • 标量、向量、矩阵

第一组三个术语(数、数组、二维数组)是计算机科学中常用的术语,而第二组(标量、向量、矩阵)是数学中常用的术语。

我们经常看到这样的事情,不同的研究领域对同一个概念使用不同的词在深度学习中,我们通常将所有这些都称为张量。

访问元素所需的索引

上面两对元素之间的关系是,两个元素都需要相同数字的索引来引用数据结构中的特定元素。

例如,假设下面这样子的一个数组:

a = [1,2,3,4]

现在,假设我们想访问(引用)这个数据结构中的数字 3 。我们可以使用一个索引来完成,比如:

a[2]# 输出 3

假设我们有这个二维数组:

dd = [[1,2,3],[4,5,6],[7,8,9]]

现在假设我们想要访问数据结构中的数字 3 。在这种情况下,我们需要两个索引去定位这个特定的元素

dd[0][2]# 输出 3

张量是广义的

让我们看看当访问(引用)这些数据结构中的特定元素需要两个以上的索引会发生什么。

当需要两个以上的索引来访问特定元素时,我们停止为结构指定特定名称,并开始使用更通用的语言。

在数学中,我们不再使用标量、向量和矩阵等词,而是开始使用张量(tensor)或nd张量(nd-tensor)。

字母 n 告诉我们访问结构中特定元素所需的索引数

而在计算机科学中,我们不再使用诸如,数字,数组,2维数组之类的词,而开始使用多维数组或n维数组(nd-array)

字母 n 告诉我们访问结构中特定元素所需的索引数

所以张量是多维数组或者简称n维数组。我们之所以说张量是一种统称(generalization),是因为我们对n的所有值都使用张量这个词,就像这样:

  • 标量是0维张量

  • 向量是一维张量

  • 矩阵是二维张量

  • n维数组是n维张量

张量允许我们去掉这些特定的项,只需使用n来标识我们正在处理的维数。

关于张量的维数要注意的一点是,它不同于我们在向量空间中引用向量维数时的意思。张量的维数并不能告诉我们张量中有多少分量(components)。

例如,我们的二维张量dd有九个分量。

dd = [[1,2,3],[4,5,6],[7,8,9]]

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【ArcGIS】栅格计算器原理及案例介绍
  • MS SQL Server 实战 排查多列之间的值是否重复
  • HTB-Lame(msf利用)
  • 数学建模笔记—— 多目标规划
  • Xcode报错:No exact matches in reference to static method ‘buildExpression‘
  • 微服务之间远程调用实现思路
  • MySQL练手题--体育馆的人流量(困难)
  • PyCharm安装
  • Jacoco的XML报告详解
  • Uniapp + Vue3 + Vite +Uview + Pinia 实现购物车功能(最新附源码保姆级)
  • Flask 第八课 -- 模板渲染
  • ArrayList 源码解析
  • Python快速入门 —— 第三节:类与对象
  • 手机玩机常识____展讯芯片刷机平台ResearchDownload的一些基本常识与问题解决
  • 【网络安全的神秘世界】渗透测试基础
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • LeetCode29.两数相除 JavaScript
  • Linux各目录及每个目录的详细介绍
  • python_bomb----数据类型总结
  • Swift 中的尾递归和蹦床
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Vue2.0 实现互斥
  • 笨办法学C 练习34:动态数组
  • 编写高质量JavaScript代码之并发
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 技术胖1-4季视频复习— (看视频笔记)
  • 聚类分析——Kmeans
  • 使用权重正则化较少模型过拟合
  • puppet连载22:define用法
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​linux启动进程的方式
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (2)(2.10) LTM telemetry
  • (3) cmake编译多个cpp文件
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二)测试工具
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (每日一问)基础知识:堆与栈的区别
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core docker部署教程和细节问题
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • @我的前任是个极品 微博分析
  • []指针
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [52PJ] Java面向对象笔记(转自52 1510988116)
  • [ABC275A] Find Takahashi 题解
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务