课程打卡凭证
什么是张量
张量在计算机中是一种数据结构,个人理解就是n维矩阵,可用于并行计算的场景。
导入mindspore的库和相关模块
多种方式创建张量
如图,分别演示了直接生成张量、由numpy生成张量、使用init初始化张量。
张量还可以继承,如图所示。
张量的属性
如图,张量的形状是2x2,数据类型是32位的int,单个元素的大小是4字节,张量总共占4x4=16字节,张量的维度是2维,总共有4个元素,每一维占8字节。
张量的索引
如图,张量的第一行是[0.0, 1.0],在[1, 1]处的值是3.0,最后一列是[1.0, 3.0],第一列是[0.0, 2.0]。
张量的运算
如图,张量直接可以直接进行加、减、乘、除、取余、整除的运算,具体操作是两个同维的张量的对应元素分别进行相应操作,与numpy类似。
张量的连接
concat
如图,concat可以用于两个张量的连接,axis用于指定连接的维度。
stack
如图,stack可以从更高的维度连接两个张量。
Tensor与numpy互相转换
tensor与numpy之间可以互相转换,具体如图所示。
稀疏张量
类似数据结构中的稀疏矩阵,绝大部分元素是0,个别元素是其他数值。因此,可以对其进行压缩,即只需记录非零元素的位置和值,不需要记录整个张量。
CSRTensor
如图,会生成2x4的张量,第一行中只有第一列的元素是非零的,值为1,第二行中只有第二列的元素是非零的,值为2。
COOTensor
如图,会生成3x4的张量,[0, 1]处的元素值为1,[1, 2]处的元素值为2,其余的值都为0。