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

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

参考英文文章:

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]]


http://www.kler.cn/a/305604.html

相关文章:

  • redis7.x源码分析:(1) sds动态字符串
  • 使用etl工具kettle的日常踩坑梳理之二、从Hadoop中导出数据
  • 使用Python实现定期从API获取数据并存储到数据库的完整指南
  • 智能电视/盒子的应用管理——通过ADB工具优化体验
  • 系统架构设计师论文
  • 如何在Python中实现一个简单的搜索引擎:从零开始的指南
  • [羊城杯 2020]Blackcat1
  • ThinkPHP8出租屋管理系统
  • 【高等数学学习记录】函数
  • RPC远程调用的序列化框架
  • 【python】OpenCV—Age and Gender Classification
  • Threejs合并模型动画(上)
  • quartz 搭配SQL Server时出现deadlock的解决方案
  • ClickHouse总结
  • 如何使用 Vue 3 的 Composition API
  • C++ | Leetcode C++题解之第406题根据身高重建队列
  • 阿里部分集团内部中间件简介
  • 【Elasticsearch系列四】ELK Stack
  • DroidBot-GPT: GPT-powered UI Automation for Android论文学习
  • C++学习笔记----7、使用类与对象获得高性能(一)---- 书写类(2)
  • 【编程基础知识】Java语言中字面字符和转义字符的区别
  • 自建,前端sdk库(react-utils-dev-sdk)
  • Pytorch2.4.0自动安装cudnn9.1??? pip安装cudnn方法
  • 使用SQLAlchemy进行数据库操作:编写一个高效的Python函数
  • SpringBoot和SpringMVC是什么关系?SpringBoot替代SpringMVC了吗?
  • 继图书管理项目遗留的问题修改