《神经网络与PyTorch实战》——3.2 构造torch.Tensor类实例

举报
华章计算机 发表于 2019/06/05 19:54:51 2019/06/05
【摘要】 本书摘自《神经网络与PyTorch实战》——书中第3章,第3.2.1节,作者是肖智清。

3.2 构造torch.Tensor类实例

  本节将正式介绍torch.Tensor类实例的方法。表3-1列出了本节会涉及的函数。这些函数都是用来构造torch.Tensor类实例的。

表3-1 本节将介绍的构造张量的函数

image.png

3.2.1 构造含有特定数据的张量

  本节介绍如何利用torch.tensor() 函数构造含有特定数据的张量。

  首先来看一个例子。代码清单3-2用torch.tensor() 函数构造了张量t0、t1、t2和t3。在张量构造语句中,使用了列表作为参数。由于参数列表中的数据都是浮点数,所以这些张量的元素类型都是torch.float32。

代码清单3-2 用列表作为参数构造torch.Tensor类实例

     t0 = torch.tensor(0)

     t1 = torch.tensor([0., 1., 2.])

     t2 = torch.tensor([[0., 1., 2.], [3., 4., 5.], [6., 7., 8.]])

     t3 = torch.tensor([[[0., 1., 2.], [3., 4., 5.], [6., 7., 8.]],

             [[9., 10., 11.], [12., 13., 14.], [15., 16., 17.]],

             [[18., 19., 20.], [21., 22., 23.], [24., 25., 26.]]])

  torch.tensor() 函数还提供了一个关键字参数dtype,用来指定张量的元素类型。如果没有使用这个关键字参数,张量的元素类型是从列表元素推导而来的(bool值推导为torch.uint8,int值推导为torch.int64,float值推导为torch.float32);使用了这个关键字参数,张量的元素类型就由这个参数指定。

  代码清单3-3演示了如何利用torch.tensor() 函数构造不同元素类型的torch.Tensor类实例。在构造类实例时,传入的数据列表都是一样的,只是关键字参数dtype不同。这样得到的张量的元素类型也不同。

代码清单3-3 构造不同元素类型的torch.Tensor类实例

     t_int8 = torch.tensor([1, 2], dtype=torch.int8)

     t_int16 = torch.tensor([1, 2], dtype=torch.int16)

     t_int32 = torch.tensor([1, 2], dtype=torch.int32)

     t_int64 = torch.tensor([1, 2], dtype=torch.int64)

     t_float16 = torch.tensor([1, 2], dtype=torch.float16)

     t_float32 = torch.tensor([1, 2], dtype=torch.float32)

     t_float64 = torch.tensor([1, 2], dtype=torch.float64)


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。