tensor数据结构是pytorch的基础与核心,本文主要介绍三种常用的tensor张量的构建方式。
1.从已有其他数据转换为tensor数据
常用方法有如下两种:
torch.tensor
torch.Tensor
上述两种方法有细微的差别,具体通过示例来进行展示
运行结果为
首先,torch.tensor
会对转换前容器内元素的数据类型保留下来,在上例中,列表内的元素数据类型为int型,经过转换后元素数据类型不变;而采用torch.Tensor
,元素数据类型被转换为float
型。
其次,当输入为一个整数时,Tensor初始化会返回以此整数为长度的一维全零向量,而tensor只返回含该整数的零维向量。
基于已有数据创建tensor数据还有两种方式
from_numpy
as_tensor
两者与上述方式的区别在于,原容器和转换后的tensor时共享内存的。如下例所示
当改变A中的元素时,A1中的元素也随之改变。
2.随机初始化tensor
常用方法如下
torch.xxxxx : 创建一个特定的tensor,如torch.ones、torch.random等,和numpy中的用法类似
torch.xx_like: 根据已有tensor创建一个同结构的tensor,如torch.ones_like,torch.random_like等
3.从已保存文件加载tensor
实现读取和保存的函数如下所示
torch.save
torch.load