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的数据的初始化,如果指定该参数,则 dtypeshape 也必须被指定。不推荐在非自动并行之外的场景下使用该接口。只有当调用 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

神经网络层方法

神经网络

接口名

概述

支持平台

mindspore.Tensor.flatten

返回展开成一维的Tensor的副本。

Ascend GPU CPU

激活函数

接口名

概述

支持平台

mindspore.Tensor.hardshrink

对Tensor应用Hard Shrink激活函数。

Ascend GPU CPU

mindspore.Tensor.soft_shrink

Soft Shrink激活函数,按输入元素计算输出。

Ascend GPU CPU

逐元素运算

接口名

概述

支持平台

mindspore.Tensor.abs

返回每个元素的绝对值。

Ascend GPU CPU

mindspore.Tensor.addcdiv

逐元素执行x1除以x2,将结果乘以标量value并将其添加到输入。

Ascend GPU CPU

mindspore.Tensor.addcmul

逐元素执行x1乘以x2,将结果乘以标量value并将其添加到输入。

Ascend GPU CPU

mindspore.Tensor.atan2

逐元素计算x/y的反正切值。

Ascend CPU GPU

mindspore.Tensor.bernoulli

以p的概率随机将输出的元素设置为0或1,服从伯努利分布。

GPU

mindspore.Tensor.bitwise_and

逐元素执行两个Tensor的与运算。

Ascend GPU CPU

mindspore.Tensor.bitwise_or

逐元素执行两个Tensor的或运算。

Ascend GPU CPU

mindspore.Tensor.bitwise_xor

逐元素执行两个Tensor的异或运算。

Ascend GPU CPU

mindspore.Tensor.ceil

向上取整。

Ascend GPU CPU

mindspore.Tensor.cosh

逐元素计算双曲余弦值。

Ascend GPU CPU

mindspore.Tensor.erf

逐元素计算原Tensor的高斯误差函数。

Ascend GPU CPU

mindspore.Tensor.erfc

逐元素计算原Tensor的互补误差函数。

Ascend GPU CPU

mindspore.Tensor.exp

逐元素计算原Tensor的指数。

Ascend GPU CPU

mindspore.Tensor.inv

逐元素计算当前Tensor的倒数。

Ascend GPU CPU

mindspore.Tensor.invert

逐元素按位翻转当前Tensor。

Ascend GPU CPU

mindspore.Tensor.lerp

基于某个浮点数Scalar或权重Tensor的值,计算当前Tensor和 end Tensor之间的线性插值。

Ascend GPU CPU

mindspore.Tensor.log

逐元素返回当前Tensor的自然对数。

Ascend GPU CPU

mindspore.Tensor.log1p

对当前Tensor逐元素加一后计算自然对数。

Ascend GPU CPU

mindspore.Tensor.logit

逐元素计算张量的logit值。

GPU

mindspore.Tensor.pow

计算Tensor中每个元素的 power 次幂。

Ascend GPU CPU

mindspore.Tensor.round

将Tensor进行四舍五入到最接近的整数数值。

Ascend GPU CPU

mindspore.Tensor.sigmoid

逐元素计算Sigmoid激活函数。

Ascend GPU CPU

mindspore.Tensor.sqrt

逐元素返回当前Tensor的平方。

Ascend GPU CPU

mindspore.Tensor.square

逐元素返回Tensor的平方。

Ascend GPU CPU

mindspore.Tensor.std

计算指定维度的标准差。

Ascend GPU CPU

mindspore.Tensor.sub

更多细节参考 mindspore.ops.sub()

Ascend GPU CPU

mindspore.Tensor.svd

计算单个或多个矩阵的奇异值分解。

GPU CPU

mindspore.Tensor.tan

返回每个元素的正切值。

Ascend GPU CPU

mindspore.Tensor.tanh

Tanh激活函数。

Ascend GPU CPU

mindspore.Tensor.var

在指定维度上的方差。

Ascend GPU CPU

mindspore.Tensor.xdivy

计算原Tensor除以输入的Tensor。

Ascend GPU CPU

mindspore.Tensor.xlogy

计算原Tensor乘以输入Tensor的对数。

Ascend GPU CPU

Reduction方法

接口名

概述

支持平台

mindspore.Tensor.amax

默认情况下,使用指定维度的最大值代替该维度的其他元素,以移除该维度。

Ascend GPU CPU

mindspore.Tensor.amin

默认情况下,使用指定维度的最小值代替该维度的其他元素,以移除该维度。

Ascend GPU CPU

mindspore.Tensor.argmax

返回指定轴上最大值的索引。

Ascend GPU CPU

mindspore.Tensor.argmin

返回指定轴上最小值的索引。

Ascend GPU CPU

mindspore.Tensor.argmax_with_value

根据指定的索引计算最大值,并返回索引和值。

Ascend GPU CPU

mindspore.Tensor.argmin_with_value

根据指定的索引计算最小值,并返回索引和值。

Ascend GPU CPU

mindspore.Tensor.max

返回Tensor的最大值或轴方向上的最大值。

Ascend GPU CPU

mindspore.Tensor.mean

默认情况下,使用指定维度的平均值代替该维度的其他元素,以移除该维度。

Ascend GPU CPU

mindspore.Tensor.median

返回指定维度上的中值。

GPU CPU

mindspore.Tensor.min

返回Tensor的最小值或轴方向上的最小值。

Ascend GPU CPU

mindspore.Tensor.norm

返回给定Tensor的矩阵范数或向量范数。

Ascend GPU CPU

mindspore.Tensor.prod

默认情况下,使用指定维度的所有元素的乘积代替该维度的其他元素,以移除该维度。

Ascend GPU CPU

mindspore.Tensor.renorm

沿维度 dim 重新规范Tensor的子张量,并且每个子张量的p范数不超过给定的最大范数 maxnorm

Ascend CPU GPU

比较方法

接口名

概述

支持平台

mindspore.Tensor.all

检查在指定轴上所有元素是否均为True。

Ascend GPU CPU

mindspore.Tensor.any

检查在指定轴方向上是否存在任意为True的Tensor元素。

Ascend GPU CPU

mindspore.Tensor.approximate_equal

逐元素计算abs(x-y),如果小于tolerance则为True,否则为False。

Ascend GPU CPU

mindspore.Tensor.has_init

Tensor是否已经初始化。

Ascend GPU CPU

mindspore.Tensor.isclose

返回一个布尔型Tensor,表示当前Tensor与 x2 的对应元素的差异是否在容忍度内相等。

Ascend GPU CPU

mindspore.Tensor.isfinite

判断输入数据每个位置上的值是否是有限数。

Ascend GPU CPU

mindspore.Tensor.top_k

沿最后一个维度查找 k 个最大元素和对应的索引。

Ascend GPU CPU

线性代数方法

接口名

概述

支持平台

mindspore.Tensor.ger

计算两个Tensor的外积,即计算此Tensor 和 x 的外积。

Ascend GPU CPU

mindspore.Tensor.log_matrix_determinant

计算一个或多个平方矩阵行列式绝对值的对数的符号和绝对值的对数。

GPU CPU

mindspore.Tensor.matrix_determinant

计算一个或多个方阵的行列式。

Ascend GPU CPU

Tensor操作方法

Tensor创建

接口名

概述

支持平台

mindspore.Tensor.choose

根据原始Tensor数组和一个索引数组构造一个新的Tensor。

Ascend GPU CPU

mindspore.Tensor.fill

用标量值填充数组。

Ascend GPU CPU

mindspore.Tensor.fills

创建一个与当前Tensor具有相同shape和type的Tensor,并用标量值填充。

GPU

mindspore.Tensor.view

根据输入shape重新创建一个Tensor,与原Tensor数据相同。

Ascend GPU CPU

随机生成方法

接口名

概述

支持平台

mindspore.Tensor.random_categorical

从分类分布中抽取样本。

Ascend GPU CPU

Array操作

接口名

概述

支持平台

mindspore.Tensor.broadcast_to

将输入shape广播到目标shape。

Ascend GPU CPU

mindspore.Tensor.col2im

将一组滑动的局部块组合成一个大张量。

GPU

mindspore.Tensor.copy

复制一个Tensor并返回。

Ascend GPU CPU

mindspore.Tensor.cummax

返回一个元组(最值、索引),其中最值是输入张量 x 沿维度 axis 的累积最大值,索引是每个最大值的索引位置。

GPU CPU

mindspore.Tensor.cummin

返回一个元组(最值、索引),其中最值是输入张量 x 沿维度 axis 的累积最小值,索引是每个最小值的索引位置。

Ascend GPU CPU

mindspore.Tensor.cumsum

返回指定轴方向上元素的累加值。

Ascend GPU CPU

mindspore.Tensor.diag

用给定的对角线值构造对角线张量。

Ascend GPU

mindspore.Tensor.diagonal

返回指定的对角线。

Ascend GPU CPU

mindspore.Tensor.dtype

返回张量的数据类型(mindspore.dtype)。

Ascend GPU CPU

mindspore.Tensor.expand_as

将目标张量的维度扩展为输入张量的维度。

Ascend GPU CPU

mindspore.Tensor.expand_dims

沿指定轴扩展Tensor维度。

Ascend GPU CPU

mindspore.Tensor.gather

返回指定 axisinput_indices 的元素对应的输入Tensor切片,输入Tensor的形状是 \((x_1, x_2, ..., x_R)\)

Ascend GPU CPU

mindspore.Tensor.gather_elements

获取指定轴的元素。

Ascend GPU CPU

mindspore.Tensor.gather_nd

按索引从输入Tensor中获取切片。

Ascend GPU CPU

mindspore.Tensor.index_fill

index 中给定的顺序选择索引,将输入 value 值填充到当前Tensor的所有 dim 维元素。

GPU

mindspore.Tensor.init_data

获取此Tensor的数据。

Ascend GPU CPU

mindspore.Tensor.inplace_update

根据 indicesv 来更新Tensor中的值。

Ascend GPU CPU

mindspore.Tensor.item

获取Tensor中指定索引的元素。

Ascend GPU CPU

mindspore.Tensor.itemset

将标量插入到Tensor(并将标量转换为Tensor的数据类型)。

Ascend GPU CPU

mindspore.Tensor.itemsize

返回一个Tensor元素的长度(以字节为单位)。

Ascend GPU CPU

mindspore.Tensor.masked_fill

将掩码位置为True的位置填充指定的值。

Ascend GPU CPU

mindspore.Tensor.masked_select

返回一个一维张量,其中的内容是此张量中对应于 mask 张量中True位置的值。

Ascend GPU CPU

mindspore.Tensor.minimum

逐元素计算当前Tensor和输入 other 中的最小值。

Ascend GPU CPU

mindspore.Tensor.nbytes

返回Tensor占用的总字节数。

Ascend GPU CPU

mindspore.Tensor.ndim

返回Tensor维度的数量。

Ascend GPU CPU

mindspore.Tensor.nonzero

计算x中非零元素的下标。

GPU

mindspore.Tensor.narrow

沿指定轴,指定起始位置获取指定长度的Tensor。

Ascend GPU CPU

mindspore.Tensor.ptp

该函数名称是"peak to peak"的缩写。

Ascend GPU CPU

mindspore.Tensor.ravel

返回一个展开的一维Tensor。

Ascend GPU CPU

mindspore.Tensor.repeat

对数组中的元素进行重复复制。

Ascend GPU CPU

mindspore.Tensor.reshape

不改变数据的情况下,将Tensor的shape改为输入的新shape。

Ascend GPU CPU

mindspore.Tensor.resize

将Tensor改为输入的新shape,并将不足的元素补0。

Ascend GPU CPU

mindspore.Tensor.scatter_add

根据指定的更新值和输入索引,通过加法进行运算,将结果赋值到输出Tensor中。

Ascend GPU CPU

mindspore.Tensor.scatter_div

根据索引,通过相除运算得到输出Tensor的值。

GPU CPU

mindspore.Tensor.scatter_max

根据指定的更新值和输入索引,通过最大值运算,输出结果以Tensor形式返回。

GPU CPU

mindspore.Tensor.scatter_min

根据指定的更新值和输入索引,通过最小值运算,将结果赋值到输出Tensor中。

Ascend GPU CPU

mindspore.Tensor.scatter_mul

根据指定的索引,通过乘法进行计算,将结果赋值到输出Tensor中。

GPU CPU

mindspore.Tensor.scatter_sub

根据指定的更新值和输入索引,通过减法进行运算,将结果赋值到输出Tensor中。

Ascend GPU CPU

mindspore.Tensor.searchsorted

查找应插入元素以保存顺序的位置索引。

Ascend GPU CPU

mindspore.Tensor.select

根据条件判断Tensor中的元素的值,来决定输出中的相应元素是从当前Tensor(如果元素值为True)还是从 y (如果元素值为False)中选择。

Ascend GPU CPU

mindspore.Tensor.shape

返回Tensor的shape。

Ascend GPU CPU

mindspore.Tensor.size

返回Tensor中的元素总数。

Ascend GPU CPU

mindspore.Tensor.split

根据指定的轴和分割数量对Tensor进行分割。

Ascend GPU CPU

mindspore.Tensor.squeeze

从Tensor中删除shape为1的维度。

Ascend GPU CPU

mindspore.Tensor.strides

Tensor上每个维度跨度的字节元组。

Ascend GPU CPU

mindspore.Tensor.sum

返回指定维度上数组元素的总和。

Ascend GPU CPU

mindspore.Tensor.swapaxes

交换Tensor的两个维度。

Ascend GPU CPU

mindspore.Tensor.T

返回转置后的Tensor。

Ascend GPU CPU

mindspore.Tensor.take

在指定维度上获取Tensor中的元素。

Ascend GPU CPU

mindspore.Tensor.to_tensor

返回init_data()的结果,并获取此Tensor的数据。

Ascend GPU CPU

mindspore.Tensor.trace

在Tensor的对角线方向上的总和。

Ascend GPU CPU

mindspore.Tensor.transpose

返回被转置后的Tensor。

Ascend GPU CPU

mindspore.Tensor.unique_consecutive

返回输入张量中每个连续等效元素组中唯一的元素。

Ascend GPU

mindspore.Tensor.unique_with_pad

对当前一维张量中元素去重,返回一维张量中的唯一元素(使用pad_num填充)和相对索引。

Ascend GPU CPU

mindspore.Tensor.unsorted_segment_max

沿分段计算输入Tensor的最大值。

Ascend GPU CPU

mindspore.Tensor.unsorted_segment_min

沿分段计算输入Tensor的最小值。

Ascend GPU CPU

mindspore.Tensor.unsorted_segment_prod

沿分段计算输入Tensor元素的乘积。

Ascend GPU

类型转换

接口名

概述

支持平台

mindspore.Tensor.asnumpy

将张量转换为NumPy数组。

Ascend GPU CPU

mindspore.Tensor.astype

将Tensor转为指定数据类型,可指定是否返回副本。

Ascend GPU CPU

mindspore.Tensor.from_numpy

将Numpy数组转换为张量。

Ascend GPU CPU

mindspore.Tensor.to_coo

将常规Tensor转为稀疏化的COOTensor。

GPU

mindspore.Tensor.to_csr

将常规Tensor转为稀疏化的CSRTensor。

GPU

梯度剪裁

接口名

概述

支持平台

mindspore.Tensor.clip

裁剪Tensor中的值。

Ascend GPU CPU

Parameter操作方法

接口名

概述

支持平台

mindspore.Tensor.assign_value

将另一个Tensor的值赋给当前Tensor。

Ascend GPU CPU

其他方法

接口名

概述

支持平台

mindspore.Tensor.flush_from_cache

如果Tensor开启缓存作用,则将缓存数据刷新到host侧。

Ascend GPU CPU

mindspore.Tensor.set_const_arg

指定该Tensor在作为网络入参时是否是一个常量。

Ascend GPU CPU