mindspore.Tensor
- class mindspore.Tensor(input_data=None, dtype=None, shape=None, init=None, internal=False, const_arg=False)[源代码]
张量,即存储多维数组(n-dimensional array)的数据结构。
- 参数:
input_data (Union[Tensor, float, int, bool, tuple, list, numpy.ndarray]) - 被存储的数据,可以是其它Tensor,也可以是Python基本数据(如int,float,bool等),或是一个NumPy对象。默认值:None。
dtype (
mindspore.dtype
) - 用于定义该Tensor的数据类型,必须是 mindspore.dtype 中定义的类型。如果该参数为None,则数据类型与 input_data 一致,默认值:None。shape (Union[tuple, list, int]) - 用于定义该Tensor的形状。如果指定了 input_data ,则无需设置该参数。默认值:None。
init (Initializer) - 用于在并行模式中延迟Tensor的数据的初始化,如果指定该参数,则 dtype 和 shape 也必须被指定。不推荐在非自动并行之外的场景下使用该接口。只有当调用 Tensor.init_data 时,才会使用指定的 init 来初始化Tensor数据。默认值:None。
internal (bool) - Tensor是否由框架创建。如果为True,表示Tensor是由框架创建的,如果为False,表示Tensor是由用户创建的。默认值:False。
const_arg (bool) - 指定该Tensor作为网络输入时是否为常量。默认值:False。
- 输出:
Tensor。
样例:
>>> import numpy as np >>> import mindspore as ms >>> from mindspore import Tensor >>> from mindspore.common.initializer import One >>> # initialize a tensor with numpy.ndarray >>> t1 = Tensor(np.zeros([1, 2, 3]), ms.float32) >>> print(t1) [[[0. 0. 0.] [0. 0. 0.]]] >>> print(type(t1)) <class 'mindspore.common.tensor.Tensor'> >>> print(t1.shape) (1, 2, 3) >>> print(t1.dtype) Float32 >>> >>> # initialize a tensor with a float scalar >>> t2 = Tensor(0.1) >>> print(t2) 0.1 >>> print(type(t2)) <class 'mindspore.common.tensor.Tensor'> >>> print(t2.shape) () >>> print(t2.dtype) Float32 >>> >>> # initialize a tensor with a tuple >>> t3 = Tensor((1, 2)) >>> print(t3) [1 2] >>> print(type(t3)) <class 'mindspore.common.tensor.Tensor'> >>> print(t3.shape) (2,) >>> print(t3.dtype) Int64 ... >>> # initialize a tensor with init >>> t4 = Tensor(shape = (1, 3), dtype=ms.float32, init=One()) >>> print(t4) [[1. 1. 1.]] >>> print(type(t4)) <class 'mindspore.common.tensor.Tensor'> >>> print(t4.shape) (1, 3) >>> print(t4.dtype) Float32
神经网络层方法
神经网络
接口名 |
概述 |
支持平台 |
返回展开成一维的Tensor的副本。 |
|
激活函数
接口名 |
概述 |
支持平台 |
对Tensor应用Hard Shrink激活函数。 |
|
|
Soft Shrink激活函数,按输入元素计算输出。 |
|
逐元素运算
接口名 |
概述 |
支持平台 |
返回每个元素的绝对值。 |
|
|
逐元素执行x1除以x2,将结果乘以标量value并将其添加到输入。 |
|
|
逐元素执行x1乘以x2,将结果乘以标量value并将其添加到输入。 |
|
|
逐元素计算x/y的反正切值。 |
|
|
以p的概率随机将输出的元素设置为0或1,服从伯努利分布。 |
|
|
逐元素执行两个Tensor的与运算。 |
|
|
逐元素执行两个Tensor的或运算。 |
|
|
逐元素执行两个Tensor的异或运算。 |
|
|
向上取整。 |
|
|
逐元素计算双曲余弦值。 |
|
|
逐元素计算原Tensor的高斯误差函数。 |
|
|
逐元素计算原Tensor的互补误差函数。 |
|
|
逐元素计算原Tensor的指数。 |
|
|
逐元素计算当前Tensor的倒数。 |
|
|
逐元素按位翻转当前Tensor。 |
|
|
基于某个浮点数Scalar或权重Tensor的值,计算当前Tensor和 end Tensor之间的线性插值。 |
|
|
逐元素返回当前Tensor的自然对数。 |
|
|
对当前Tensor逐元素加一后计算自然对数。 |
|
|
逐元素计算张量的logit值。 |
|
|
计算Tensor中每个元素的 power 次幂。 |
|
|
将Tensor进行四舍五入到最接近的整数数值。 |
|
|
逐元素计算Sigmoid激活函数。 |
|
|
逐元素返回当前Tensor的平方。 |
|
|
逐元素返回Tensor的平方。 |
|
|
计算指定维度的标准差。 |
|
|
更多细节参考 |
|
|
计算单个或多个矩阵的奇异值分解。 |
|
|
返回每个元素的正切值。 |
|
|
Tanh激活函数。 |
|
|
在指定维度上的方差。 |
|
|
计算原Tensor除以输入的Tensor。 |
|
|
计算原Tensor乘以输入Tensor的对数。 |
|
Reduction方法
接口名 |
概述 |
支持平台 |
默认情况下,使用指定维度的最大值代替该维度的其他元素,以移除该维度。 |
|
|
默认情况下,使用指定维度的最小值代替该维度的其他元素,以移除该维度。 |
|
|
返回指定轴上最大值的索引。 |
|
|
返回指定轴上最小值的索引。 |
|
|
根据指定的索引计算最大值,并返回索引和值。 |
|
|
根据指定的索引计算最小值,并返回索引和值。 |
|
|
返回Tensor的最大值或轴方向上的最大值。 |
|
|
默认情况下,使用指定维度的平均值代替该维度的其他元素,以移除该维度。 |
|
|
返回指定维度上的中值。 |
|
|
返回Tensor的最小值或轴方向上的最小值。 |
|
|
返回给定Tensor的矩阵范数或向量范数。 |
|
|
默认情况下,使用指定维度的所有元素的乘积代替该维度的其他元素,以移除该维度。 |
|
|
沿维度 dim 重新规范Tensor的子张量,并且每个子张量的p范数不超过给定的最大范数 maxnorm 。 |
|
比较方法
接口名 |
概述 |
支持平台 |
检查在指定轴上所有元素是否均为True。 |
|
|
检查在指定轴方向上是否存在任意为True的Tensor元素。 |
|
|
逐元素计算abs(x-y),如果小于tolerance则为True,否则为False。 |
|
|
Tensor是否已经初始化。 |
|
|
返回一个布尔型Tensor,表示当前Tensor与 x2 的对应元素的差异是否在容忍度内相等。 |
|
|
判断输入数据每个位置上的值是否是有限数。 |
|
|
沿最后一个维度查找 k 个最大元素和对应的索引。 |
|
线性代数方法
接口名 |
概述 |
支持平台 |
计算两个Tensor的外积,即计算此Tensor 和 x 的外积。 |
|
|
计算一个或多个平方矩阵行列式绝对值的对数的符号和绝对值的对数。 |
|
|
计算一个或多个方阵的行列式。 |
|
Tensor操作方法
Tensor创建
接口名 |
概述 |
支持平台 |
根据原始Tensor数组和一个索引数组构造一个新的Tensor。 |
|
|
用标量值填充数组。 |
|
|
创建一个与当前Tensor具有相同shape和type的Tensor,并用标量值填充。 |
|
|
根据输入shape重新创建一个Tensor,与原Tensor数据相同。 |
|
随机生成方法
接口名 |
概述 |
支持平台 |
从分类分布中抽取样本。 |
|
Array操作
接口名 |
概述 |
支持平台 |
将输入shape广播到目标shape。 |
|
|
将一组滑动的局部块组合成一个大张量。 |
|
|
复制一个Tensor并返回。 |
|
|
返回一个元组(最值、索引),其中最值是输入张量 x 沿维度 axis 的累积最大值,索引是每个最大值的索引位置。 |
|
|
返回一个元组(最值、索引),其中最值是输入张量 x 沿维度 axis 的累积最小值,索引是每个最小值的索引位置。 |
|
|
返回指定轴方向上元素的累加值。 |
|
|
用给定的对角线值构造对角线张量。 |
|
|
返回指定的对角线。 |
|
|
返回张量的数据类型( |
|
|
将目标张量的维度扩展为输入张量的维度。 |
|
|
沿指定轴扩展Tensor维度。 |
|
|
返回指定 axis 上 input_indices 的元素对应的输入Tensor切片,输入Tensor的形状是 \((x_1, x_2, ..., x_R)\)。 |
|
|
获取指定轴的元素。 |
|
|
按索引从输入Tensor中获取切片。 |
|
|
按 index 中给定的顺序选择索引,将输入 value 值填充到当前Tensor的所有 dim 维元素。 |
|
|
获取此Tensor的数据。 |
|
|
根据 indices 以 v 来更新Tensor中的值。 |
|
|
获取Tensor中指定索引的元素。 |
|
|
将标量插入到Tensor(并将标量转换为Tensor的数据类型)。 |
|
|
返回一个Tensor元素的长度(以字节为单位)。 |
|
|
将掩码位置为True的位置填充指定的值。 |
|
|
返回一个一维张量,其中的内容是此张量中对应于 mask 张量中True位置的值。 |
|
|
逐元素计算当前Tensor和输入 other 中的最小值。 |
|
|
返回Tensor占用的总字节数。 |
|
|
返回Tensor维度的数量。 |
|
|
计算x中非零元素的下标。 |
|
|
沿指定轴,指定起始位置获取指定长度的Tensor。 |
|
|
该函数名称是"peak to peak"的缩写。 |
|
|
返回一个展开的一维Tensor。 |
|
|
对数组中的元素进行重复复制。 |
|
|
不改变数据的情况下,将Tensor的shape改为输入的新shape。 |
|
|
将Tensor改为输入的新shape,并将不足的元素补0。 |
|
|
根据指定的更新值和输入索引,通过加法进行运算,将结果赋值到输出Tensor中。 |
|
|
根据索引,通过相除运算得到输出Tensor的值。 |
|
|
根据指定的更新值和输入索引,通过最大值运算,输出结果以Tensor形式返回。 |
|
|
根据指定的更新值和输入索引,通过最小值运算,将结果赋值到输出Tensor中。 |
|
|
根据指定的索引,通过乘法进行计算,将结果赋值到输出Tensor中。 |
|
|
根据指定的更新值和输入索引,通过减法进行运算,将结果赋值到输出Tensor中。 |
|
|
查找应插入元素以保存顺序的位置索引。 |
|
|
根据条件判断Tensor中的元素的值,来决定输出中的相应元素是从当前Tensor(如果元素值为True)还是从 y (如果元素值为False)中选择。 |
|
|
返回Tensor的shape。 |
|
|
返回Tensor中的元素总数。 |
|
|
根据指定的轴和分割数量对Tensor进行分割。 |
|
|
从Tensor中删除shape为1的维度。 |
|
|
Tensor上每个维度跨度的字节元组。 |
|
|
返回指定维度上数组元素的总和。 |
|
|
交换Tensor的两个维度。 |
|
|
返回转置后的Tensor。 |
|
|
在指定维度上获取Tensor中的元素。 |
|
|
返回init_data()的结果,并获取此Tensor的数据。 |
|
|
在Tensor的对角线方向上的总和。 |
|
|
返回被转置后的Tensor。 |
|
|
返回输入张量中每个连续等效元素组中唯一的元素。 |
|
|
对当前一维张量中元素去重,返回一维张量中的唯一元素(使用pad_num填充)和相对索引。 |
|
|
沿分段计算输入Tensor的最大值。 |
|
|
沿分段计算输入Tensor的最小值。 |
|
|
沿分段计算输入Tensor元素的乘积。 |
|
类型转换
接口名 |
概述 |
支持平台 |
将张量转换为NumPy数组。 |
|
|
将Tensor转为指定数据类型,可指定是否返回副本。 |
|
|
将Numpy数组转换为张量。 |
|
|
将常规Tensor转为稀疏化的COOTensor。 |
|
|
将常规Tensor转为稀疏化的CSRTensor。 |
|
梯度剪裁
接口名 |
概述 |
支持平台 |
裁剪Tensor中的值。 |
|
Parameter操作方法
接口名 |
概述 |
支持平台 |
将另一个Tensor的值赋给当前Tensor。 |
|
其他方法
接口名 |
概述 |
支持平台 |
如果Tensor开启缓存作用,则将缓存数据刷新到host侧。 |
|
|
指定该Tensor在作为网络入参时是否是一个常量。 |
|