深度学习实践教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 Tensor的创建

在PyTorch中,创建Tensor的方法有很多,例如:用指定值创建Tensor;创建时仅指定Tensor的形状;依据另外一个Tensor的形状创建Tensor等。

1.用指定值创建Tensor

例3.1】假设要创建一个32位浮点型的Tensor,其值是矩阵[[1,2],[3,4],[5,6]]。

输入:

输出:

例3.2】用size()函数或shape属性查看Tensor的尺寸;用dtype属性查看它的数据类型;用numel()函数查看它的元素个数。

输入:

输出:

可以看出:

(1)size()函数与shape属性具有相同的功能。

(2)不指定数据类型时,Tensor默认的数据类型是32位浮点型(torch.FloatTensor)。

2.创建时仅指定Tensor的形状

例3.3】可以在创建时为Tensor直接赋值,也可以先创建一个未赋值的空Tensor。

输入:

输出:

系统不会马上给这个Tensor分配空间,使用时才会分配,分配空间的大小取决于内存空间的状态。

3.依据另外一个Tensor的形状创建Tensor

例3.4】创建一个和给定的Tensor形状一样的新Tensor。

输入:

输出:

4.其他常用的创建Tensor的方法

其他常用的创建Tensor的方法如下。

(1)torch.empty(size):返回形状为size的空Tensor。

(2)torch.zeros(size):返回形状为size、元素全部是0的Tensor。

(3)torch.zeros_like(input):返回与input相同形状的、元素全部是0的Tensor。

(4)torch.ones(size):返回形状为size、元素全部是1的Tensor。

(5)torch.ones_like(input):返回与input相同形状的、元素全部是1的Tensor。

(6)torch.rand(size):返回形状为size、元素为一组在[0,1)内满足均匀分布的随机数的Tensor。

(7)torch.randn(size):返回形状为size、元素为一组满足标准正态分布(均值为0,方差为1)的随机数的Tensor。