张量解释——深度学习的数据结构
共 2148字,需浏览 5分钟
·
2022-03-23 10:42
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
那么接下来就开始我们今天的学习吧!
在这篇文章中,是关于张量的。
我们将讨论张量、术语和张量索引。这将给我们知识,我们需要看看一些基本的张量属性,这些属性将用于深度学习中。
神经网络中的输入、输出和变换都是用张量表示的,因此,神经网络编程大量使用张量。
张量是神经网络使用的主要数据结构。
张量的具体实例
这些例子中的每一个都是张量更一般概念的具体例子:
数字(number)
标量(scalar)
数组(array)
矢量(vector)
二维数组(2d-array)
矩阵(matrix)
让我们将上面列出的示例张量分成两组:
数字,数组,二维数组
标量、矢量、矩阵
通过索引访问元素
这两对元素之间的关系是,两个元素都需要相同数字的索引来引用数据结构中的特定元素。
a = [1,2,3,4]
a[2]
# 输入 3
这个逻辑对向量(vector)的作用是一样的。
另一个例子是,假设我们有这个二维数组:
dd = [
[ ],
[ ],
[ ]
]
dd[0][2]
# 输出 3
这个逻辑对矩阵同样适用。
注意,如果我们有一个数字或标量,我们不需要索引,我们可以直接引用这个数字或标量。
我们现在就可以进行概括了。
张量是广义的
让我们看看当访问(引用)这些数据结构中的特定元素需要两个以上的索引会发生什么。
当访问一个特定元素需要两个以上的索引时,我们停止为结构指定特定的名称,并开始使用更通用的语言。
数学
在数学中,我们不再使用标量、向量和矩阵等词,而是开始使用张量(tensor)或nd张量(nd-tensor)。
字母 n 告诉我们访问结构中特定元素所需的索引数。
计算机科学
在计算机科学中,我们不再使用诸如,数字,数组,2维数组之类的词,而开始使用多维数组或n维数组(nd-array)。字母 n 告诉我们访问结构中特定元素所需的索引数。
接下来更加清楚的介绍。在神经网络编程的实际应用中,张量和n维数组是一个整体。
Tensors and nd-arrays are the same thing!
所以张量是多维数组或者简称n维数组。我们之所以说张量是一种统称(generalization),是因为我们对n的所有值都使用张量这个词,就像这样:
标量是0维张量
向量是一维张量
矩阵是二维张量
n维数组是n维张量
张量允许我们去掉这些特定的项,只需使用n来标识我们正在处理的维数。
关于张量的维数要注意的一点是,它不同于我们在向量空间中引用向量维数时的意思。张量的维数并不能告诉我们张量中有多少分量(components)。
如果我们有一个来自三维欧氏空间的三维向量,我们就有一个有序三元组对应三个分量。
然而,三维张量可以有三个以上的分量。例如,我们的二维张量dd有九个分量。
dd = [
[1,2,3],
[4,5,6],
[7,8,9]
]
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~