zero

  • 3

    获得赞
  • 2

    发布的文章
  • 0

    答辩的项目

PyTorch学习笔记(一):张量解释-深度学习的数据结构

PyTorch

最后更新 2020-04-17 14:46 阅读 288

最后更新 2020-04-17 14:46

阅读 288

PyTorch

之前分享过一个国外 DEEPLIZARD 的高效入门 PyTorch 视频教程,不过是英文的,导致很多小伙伴觉得非常的吃力。不过其实他们是有相对应的文章的,因此我计划将其翻译并整理成中文,方便大家阅读,同时自己也可以学习一波。

(中文字幕版)视频链接:https://www.bilibili.com/video/BV1YJ411t7eq?p=1

有一句话,我非常的认同,理解的东西多了,记得东西自然就少了。通过这几天本人的学习真心觉得这个系列非常的优质。希望大家能和我一起学下来,可能会有一种前所未有的体验。

那么接下来就开始我们今天的学习吧! 

在这篇文章中,是关于张量的。 

们将讨论张量、术语和张量索引。这将给我们知识,我们需要看看一些基本的张量属性,这些属性将用于深度学习中。 这个系列前面部分是关于pytorch的安装,相对简单,这里就先暂时不介绍了。后续如果有需要,或者为了系列的完整性会考虑补上。

什么是张量(Tensor) 

神经网络中的输入、输出和变换都是用张量表示的,因此,神经网络编程大量使用张量。 

张量是神经网络使用的主要数据结构。

张量的概念是其他更具体概念的数学归纳。让我们看看张量的一些具体例子。

张量的具体实例 

这些例子中的每一个都是张量更一般概念的具体例子:

  • 数字(number) 
  • 标量(scalar) 
  • 数组(array) 
  • 矢量(vector) 
  • 二维数组(2d-array) 
  • 矩阵(matrix)

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

  • 数字,数组,二维数组 
  • 标量、矢量、矩阵

通过索引访问元素 

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

Indexes requiredComputer scienceMathematics
0numberscalar
1arrayvector
22d-arraymatrix

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

a = [1,2,3,4]

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

a[2]
# 输入 3

这个逻辑对向量(vector)的作用是一样的。 另一个例子是,假设我们有这个二维数组:

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 告诉我们访问结构中特定元素所需的索引数。

Indexes requiredComputer scienceMathematics
nnd-arraynd-tensor

接下来更加清楚的介绍。

在神经网络编程的实际应用中,张量和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]
]

我计划好好更新这个系列,对于事物的发展,反馈是非常重要的一个环节!只有有了反馈才知道我哪里做的好,哪里出现问题了,如果觉得文章不错,小伙伴可以点点“赞”给我一个正反馈,我会开心一整天的! ^_^

英文原文:https://deeplizard.com/learn/video/AiyK0idr4uM


image.png

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。
本文链接地址:https://www.flyai.com/article/389
讨论
500字
表情
每日优质讨论奖励 20FAI
发送
每日优质讨论奖励 20FAI
删除确认
是否删除该条评论?
取消 删除