昇思25天学习打卡营第2天|初学教程之张量Tensor

张量Tensor基本介绍

        张量(Tensor)是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在eq?n维空间内,有 eq?n%5Er个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。eq?r称为该张量的秩或阶(与矩阵的秩和阶均无关系)。

        张量是一种特殊的数据结构,与数组和矩阵非常相似。与大多AI框架一样,张量(Tensor)是MindSpore网络运算中的基本数据结构,MindSpore中各种API的实现基本离不开张量。了解并熟悉使用张量是学好MindSpore的必经之路。

张量Tensor的基本操作

        MindSpore的张量基本操作与其他AI框架大同小异,如果有使用其他AI框架的经验,比如Pytorch,上手MindSpore就很快,反过来也一样。

1. 创建张量

        MindSpore支持从Python部分数据类型,比如list、tuple,和numpy.ndarray创建,而Tensor和numpy.ndarray之间可以互相转换,不过二者有些不同,具体可自行到官方文档查看;或者直接输入数据进行创建,其数据类型可由框架自行推导;又或者从另一个Tensor进行复制。

2. 张量的属性

        张量的属性包括形状、数据类型、转置张量、单个元素大小、占用字节数量、维数、元素个数和每一维步长。

3. 索引方式

        张量的索引方式与numpy.array几乎一样,从0开始,负索引表示倒序/

4. 张量运算

        张量之间有很多运算,包括算术、线性代数、矩阵处理(转置、标引、切片)、采样等,张量运算和NumPy的使用方式类似。但是在深度学习模型中,处理加减乘除等基本算术外,最常用的便是concatstack

5. 稀疏张量

        与我之前所使用过的一些AI框架不同,MindSpore对稀疏张量有额外的原生支持,使得MindSpore在某些应用场景,比如推荐系统、分子动力学、图神经网络等涉及较多的稀疏张量的场景下编程更方便,性能更好些。MindSpore支持两种稀疏张量的格式CSRTensor,COOTensor,CSR和COO都是压缩稀疏张量的方法,在大学的数据结构课程上可能会教过,如果不会就搜索引擎走起咯~

        本人是第一次见到AI框架支持两种稀疏张量格式,了解也不多,如果有兴趣深入了解MindSpore中的这两种稀疏张量格式,请参考mindspore.CSRTensormindspore.COOTensor

jupyter在线运行情况

        与昨日一样,采用jupyter在线运行学习MindSpore中的张量,可以很快速的了解和上手。其运行情况如下:

2005d284d55c4e9897d0e6adcec0f362.png

a5726c0a3546488fbd40f936bb586261.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值