网站大量收购独家精品文档,联系QQ:2885784924

深度学习案例教程 教案2.3张量与数学运算(共5节).docx

深度学习案例教程 教案2.3张量与数学运算(共5节).docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

2.3.1

(p1)同学们大家好,本节课我们来学习2.3节PyTorch的基本使用。

在这一小节里面,我们会学习到张量、以及其数学运算、数理统计的知识。

(p2)首先,我们来学习2.3.1小节张量。

PyTorch的运算单元叫作张量(Tensor)。我们可以将张量理解为一个多维数组,一阶张量即为一维数组,通常叫作向量;二阶张量即为二维数组,通常叫作矩阵;三阶张量即为三维数组;n阶张量即为n维数组。

我们可以来看一个例子。

如图2.18所示,是一个三阶张量,我们可以理解为三个矩阵,每个矩阵相当于一个二阶张量,都具有8行6列,其中每个单元都存储了一个实数,这些实数可能相同,也可能不同。

另外,我们将一个张量每个维度的大小称为张量在这个维度的尺寸(size)。

例如,在图2.18所示的张量中,

它由三个矩阵构成,所以它第一个维度的尺寸就是3;

在每一个维度上,它又是一个矩阵,这个矩阵有8行,因此它第二个维度的尺寸就是8;

对于任意一行,它又是一个长度为6的向量,因此它第三个维度的尺寸就是6。

如果我们将这个三阶张量看作一个立方体,那么3、8、6就分别是这个立方体的长、宽、高。

图2.18中最后一行(3,8,6)就标出了该张量在各个维度的尺寸。

(p3)Tensor的基本数字类型有五种

第一种是:32位浮点型,代码定义为:torch.FloatTensor。

第二种是:64位整型,代码定义为:torch.LongTensor。

第三种是:32位整型,代码定义为:torch.IntTensor。

第四种是:16位整型,代码定义为:torch.ShortTensor。

第五种是:64位浮点型,代码定义为:torch.DoubleTensor。

除以上基本数字类型外,还有byte【bait】和chart类型等。

(p4)在学习张量前,首先要有一个张量可以操作,所以,我们现在来学习一下,如何去初始化一个张量。

这里我们将会学习到4种初始化张量的方法:

(1)通过基础构造函数创建张量

(2)通过数据创建张量

(3)根据另一个张量创建

(4)使用随机或恒定值创建

(p5)对于第一种创建方法——通过基础构造函数创建张量。

我们来看一个例子。

例如,构造一个3×4的张量,代码如下。

首先,导入我们需要的包torch,再调用torch下面的tensor()函数,里面填写好张量大小即可,但需要注意3和4的先后顺序。最后,我们将生成好的张量打印出来查看一下。

代码运行成功,生成了一个3×4的张量。

(p6)对于第二种创建方法——通过数据创建张量。

我们来看一个例子。

张量可以直接从数据中创建,其数据类型是自动推断的,代码如下:

首先,导入我们需要的包torch,再定义一个list类型数据data,这时,我们就可以通过已有数据data来创建张量,方法是调用torch下面的tensor()函数,里面参数写上data即可,最后,我们将生成好的张量打印出来查看一下。

代码运行成功,生成了一个和data数值相同,类型为张量的数据。

(p7)对于第三种创建方法——根据另一个张量创建。

我们来看一个例子。

通过代码注释部分,我们可以知道,

新张量保留参数张量的属性(即形状、数据类型),除非显式覆盖。

(p8)对于第四种创建方法——使用随机或恒定值创建。

我们来看一个例子。

使用随机或恒定值创建张量,其中参数shape是张量维度的元组,它决定了输出张量的形

状。

代码如下,

torch.rand()是用于生成均匀随机分布张量的函数,从区间[0,1)的均匀分布中抽取一个随机数生成一个张量。

torch.ones()返回一个全为1的张量。

torch.zeros()返回一个全为0的张量。

运行代码,结果正确,生成了三种不同的张量。

(p9)了解了如何初始化一个张量,现在我们来学习一下张量的相关属性。

张量的属性包括形状、数据类型和存储设备等,下面我们通过程序输出相关的属性。

代码如下:

tensor.shape输出张量的形状,tensor.dtype输出张量的数据类型,tensor.device输出张量的存储设备信息。

例子中,生成的张量tensor大小为2x4,类型为float32类型,存储在cpu设备上。

(p10)了解了张量的相关属性,现在我们来学习一个重点内容——张量的操作。

在这一部分,我们将会学习到3个内容,

如何将张量移动到GPU上。

张量的索引和切片操作。

张量的连接操作。

(p11)默认情况下,张量是在CPU上创建的。这时可以将张量移动到GPU上,因为GPU的处理速度,通常比CPU更快。

具体代码如下:

首先需要判断自身设备上是否有GPU可用,如果可用,

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档