《神经网络与PyTorch实战》——3.2 构造torch.Tensor类实例
3.2 构造torch.Tensor类实例
本节将正式介绍torch.Tensor类实例的方法。表3-1列出了本节会涉及的函数。这些函数都是用来构造torch.Tensor类实例的。
表3-1 本节将介绍的构造张量的函数
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)
- 点赞
- 收藏
- 关注作者
评论(0)