学习张量 Tensor
张量是一种特殊的数据结构,与数组和矩阵非常相似。张量(Tensor)是MindSpore网络运算中的基本数据结构,本次学习张量和稀疏张量的属性及用法。
1.创建张量
(1)可以根据数据创建张量,数据类型可以设置或者通过框架自动推断。
(2)从NumPy数组生成
(3)使用init初始化器构造张量
(4)继承另一个张量的属性,形成新的张量
2.张量的属性
张量的属性包括形状、数据类型、转置张量、单个元素大小、占用字节数量、维数、元素个数和每一维步长。
- 形状(shape):`Tensor`的shape,是一个tuple。
- 数据类型(dtype):`Tensor`的dtype,是MindSpore的一个数据类型。
- 单个元素大小(itemsize): `Tensor`中每一个元素占用字节数,是一个整数。
- 占用字节数量(nbytes): `Tensor`占用的总字节数,是一个整数。
- 维数(ndim): `Tensor`的秩,也就是len(tensor.shape),是一个整数。
- 元素个数(size): `Tensor`中所有元素的个数,是一个整数。
- 每一维步长(strides): `Tensor`每一维所需要的字节数,是一个tuple。
3.张量索引
Tensor索引与Numpy索引类似,索引从0开始编制,负索引表示按倒序编制,冒号`:`和 `...`用于对数据进行切片
4.张量运算
张量之间有很多运算,包括算术、线性代数、矩阵处理(转置、标引、切片)、采样等,张量运算和NumPy的使用方式类似,下面介绍其中几种操作。
普通算术运算有:加(+)、减(-)、乘(*)、除(/)、取模(%)、整除(//)。
稀疏张量
稀疏张量是一种特殊张量,其中绝大部分元素的值为零。
CSR
(Compressed Sparse Row)稀疏张量格式有着高效的存储与计算的优势。其中,非零元素的值存储在中,非零元素的位置存储在(行)和(列)中
学习时间以及id