张量(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方法
|