张量(Tensor)对象,数组的衍生概念
Numpy中Array提供了基础功能, 其数据结构本身不支持GPU运行,无法应对工业场景中复杂神经网络背后的大规模数值运算.
1. Tensor基本创建和类型

整数型的数组默认创建整型int32, 张量默认创建长整型int64

创建浮点型数组时,张量默认是float32(单精度浮点型), 而Array则默认是float64(双精度浮点型)

布尔型

创建Int16整型张量

复数

2. 张量类型的转化
隐式转化
和Numpy中array相同,当张量各元素属于不同类型时,系统自动进行隐式转化.

转化方法
下面的都是方法,并没有改变t本身的数值类型

3. 张量的维度和形变
向量是一维数组, 矩阵是二维数组,在张量中,我们还可以定义更高维度的数组
创建高维张量
用简单序列创建一维数组 
另外两个常用的函数/方法,查看张量的形状

用序列的list创建二维数组

"零"维张量 目前可以把零维张量视为拥有张量属性的单独一个数.(张量可以存在GPU上,但Python原生的数值型对象不行.) Python中单独一个数是Scalars(标量)零维的张量则是Tensor.

高维张量 一般三维及以上. 常见为三维张量,可以理解为二维数组和矩阵的集合

张量的形变
张量座位数字的结构化集合,其结构也是可以根据实际情况灵活调整的
Flatten 拉平,将任意维度张量转化为一维张量

reshape 任意变形

利用reshape,将t3拉平

4.特殊张量的创建方法
特殊取值的张量创建方法
 
创建指定形状的数组
根据指定对象的形状进行数值填充,在上述函数后面加_like, 需要注意的是转化前后数据类型保持一致

5. 张量和其他相关类型之间的转化方法
  
6. 张量的深copy
等号赋值相当于浅copy, 深copy需要用clone方法
 
|