mindspore.mint
mindspore.mint提供了大量的functional、nn、优化器接口,API用法及功能等与业界主流用法一致,方便用户参考使用。 mint接口当前是实验性接口,在图编译模式为O0和PyNative模式下性能比ops更优。当前暂不支持图下沉模式及CPU、GPU后端,后续会逐步完善。
模块导入方法如下:
from mindspore import mint
MindSpore中 mindspore.mint 接口与上一版本相比,新增、删除和支持平台的变化信息请参考 mindspore.mint API接口变更 。
Tensor
创建运算
接口名 |
概述 |
支持平台 |
警告 |
创建一个从 start 开始, end 结束(不含),步长为 step 序列(一维张量)。 |
|
无 |
|
创建一个主对角线上元素为1,其余元素为0的Tensor。 |
|
无 |
|
创建一个指定shape的Tensor,并用指定值填充。 |
|
无 |
|
返回一个在区间 start 和 end (包括 start 和 end )内均匀分布的,包含 steps 个值的一维Tensor。 |
|
Atlas训练系列产品暂不支持int16数据类型。 |
|
创建一个值全为1的Tensor。 |
|
无 |
|
创建一个数值全为1的Tensor,shape和 input 相同,dtype由 dtype 决定。 |
|
无 |
|
创建一个值全为0的Tensor。 |
|
无 |
|
创建一个数值全为0的Tensor,shape和 input 相同,dtype由 dtype 决定。 |
|
无 |
索引、切分、连接、突变运算
接口名 |
概述 |
支持平台 |
警告 |
在指定维度上拼接输入Tensor。 |
|
无 |
|
返回输入Tensor在指定 index 索引对应的元素组成的切片。 |
|
在Ascend后端,以下场景将导致不可预测的行为: 正向执行流程中,当 index 的取值不在范围 [-input.shape[dim], input.shape[dim]) 内; 反向执行流程中,当 index 的取值不在范围 [0, input.shape[dim]) 内。 |
|
返回一个新的Tensor,该Tensor沿维度 dim 按 index 中给定的索引对 input 进行选择。 |
|
无 |
|
返回一个一维Tensor,其中的内容是 input 中对应于 mask 中True位置的值。 |
|
无 |
|
按照输入 dims 的维度顺序排列输入Tensor。 |
|
无 |
|
根据指定索引将 src 中的值更新到 input 中返回输出。 |
|
无 |
|
将 src 中所有的元素添加到 input 中 index 指定的索引处。 |
|
无 |
|
根据指定的轴将输入Tensor切分成块。 |
|
无 |
|
沿着指定的轴,指定起始位置获取指定长度的Tensor。 |
|
无 |
|
返回所有非零元素下标位置。 |
|
无 |
|
通过复制 dims 次 input 来创建新的Tensor。 |
|
无 |
|
返回输入Tensor input 的下三角形部分(包含对角线和下面的元素),并将其他元素设置为0。 |
|
无 |
|
在指定轴上对输入Tensor序列进行堆叠。 |
|
无 |
|
返回一个Tensor,Tensor的元素从 input 或 other 中根据 condition 选择。 |
|
无 |
随机采样
接口名 |
概述 |
支持平台 |
警告 |
根据输入生成一个多项式分布的Tensor。 |
|
这是一个实验性API,后续可能修改或删除。 |
|
根据正态(高斯)随机数分布生成随机数。 |
|
无 |
|
返回shape与输入相同,类型为 dtype 的Tensor,dtype由输入决定,其元素取值服从 \([0, 1)\) 区间内的均匀分布。 |
|
无 |
|
返回一个Tensor,shape和dtype由输入决定,其元素为服从均匀分布的 \([0, 1)\) 区间的数字。 |
|
无 |
数学运算
逐元素运算
接口名 |
概述 |
支持平台 |
警告 |
逐元素计算输入Tensor的绝对值。 |
|
无 |
|
对 other 缩放 scalar 后与 input 相加。 |
|
无 |
|
逐元素计算输入Tensor的反余弦。 |
|
无 |
|
逐元素计算输入Tensor的反双曲余弦。 |
|
无 |
|
|
无 |
||
|
无 |
||
|
无 |
||
|
无 |
||
|
无 |
||
|
无 |
||
|
无 |
||
逐元素计算输入Tensor的反正弦。 |
|
无 |
|
计算输入元素的反双曲正弦。 |
|
无 |
|
逐元素计算输入Tensor的反正切值。 |
|
无 |
|
逐元素计算input/other的反正切值。 |
|
无 |
|
逐元素计算输入Tensor的反双曲正切值。 |
|
无 |
|
逐元素执行两个Tensor的与运算。 |
|
无 |
|
逐元素执行两个Tensor的或运算。 |
|
无 |
|
逐元素执行两个Tensor的异或运算。 |
|
无 |
|
向上取整函数。 |
|
无 |
|
将输入Tensor的值裁剪到指定的最小值和最大值之间。 |
|
无 |
|
逐元素计算输入的余弦。 |
|
如果使用float64,可能会存在精度丢失的问题。 |
|
逐元素计算 input 的双曲余弦值。 |
|
无 |
|
返回沿着维度 dim 上,input 和 other 的向量积(叉积)。 |
|
无 |
|
逐元素计算当前Tensor除以输入的另一个Tensor的商。 |
|
无 |
|
|
|
无 |
|
逐元素计算 input 的高斯误差函数。 |
|
无 |
|
逐元素计算 input 的互补误差函数。 |
|
无 |
|
计算输入的逆误差函数。 |
|
无 |
|
逐元素计算 input 的指数。 |
|
无 |
|
逐元素计算Tensor input 以2为底的指数。 |
|
无 |
|
逐元素计算输入Tensor的指数,然后减去1。 |
|
无 |
|
|
无 |
||
逐元素向下取整函数。 |
|
无 |
|
逐元素返回Tensor的自然对数。 |
|
如果输入值在(0, 0.01]或[0.95, 1.05]范围内,则输出精度可能会存在误差。 |
|
对输入Tensor逐元素加一后计算自然对数。 |
|
无 |
|
逐元素计算两个Tensor的逻辑与运算。 |
|
无 |
|
逐元素计算一个Tensor的逻辑非运算。 |
|
无 |
|
逐元素计算两个Tensor的逻辑或运算。 |
|
无 |
|
逐元素计算两个Tensor的逻辑异或运算。 |
|
无 |
|
两个Tensor逐元素相乘。 |
|
无 |
|
实现矩阵 input 和向量 vec 相乘。 |
|
这是一个实验性API,后续可能修改或删除。 |
|
将 input 中的 NaN 、正无穷大和负无穷大值分别替换为 nan 、posinf 和 neginf 指定的值。 |
|
对于Ascend,仅支持 Atlas A2 训练系列产品。 这是一个实验性API,后续可能修改或删除。 |
|
计算输入input的相反数并返回。 |
|
无 |
|
|
|
无 |
|
计算 input 中每个元素的 exponent 次幂。 |
|
这是一个实验性API,后续可能修改或删除。 |
|
返回输入Tensor每个元素的倒数。 |
|
无 |
|
逐元素计算 input 除以 other 后的余数。 |
|
无 |
|
沿轴移动Tensor的元素。 |
|
无 |
|
对输入数据进行四舍五入到最接近的整数数值。 |
|
无 |
|
逐元素计算输入Tensor元素的平方根倒数。 |
|
无 |
|
逐元素计算Sigmoid激活函数。 |
|
无 |
|
按sign公式逐元素计算输入Tensor。 |
|
无 |
|
逐元素计算输入Tensor的正弦。 |
|
无 |
|
计算输入的归一化正弦值。 |
|
无 |
|
逐元素计算输入Tensor的双曲正弦。 |
|
无 |
|
逐元素返回当前Tensor的平方根。 |
|
无 |
|
逐元素返回Tensor的平方。 |
|
无 |
|
对 other 缩放 scalar 后与 input 相减。 |
|
无 |
|
逐元素计算输入元素的正切值。 |
|
无 |
|
逐元素计算输入元素的双曲正切。 |
|
无 |
|
返回一个新的Tensor,该Tensor具有输入元素的截断整数值。 |
|
无 |
|
计算第一个输入乘以第二个输入的对数。 |
|
无 |
Reduction运算
接口名 |
概述 |
支持平台 |
警告 |
返回输入Tensor在指定轴上的最大值索引。 |
|
无 |
|
返回输入Tensor在指定轴上的最小值索引。 |
|
无 |
|
默认情况下,通过对维度中所有元素进行“逻辑与”来减少 input 的维度。 |
|
无 |
|
默认情况下,通过对维度中所有元素进行“逻辑或”来减少 input 的维度。 |
|
无 |
|
在给定轴上计算输入Tensor的最大值。 |
|
无 |
|
默认情况下,移除输入所有维度,返回 input 中所有元素的平均值。 |
|
无 |
|
输出指定维度 |
|
无 |
|
在给定轴上计算输入Tensor的最小值。 |
|
无 |
|
默认情况下,使用指定维度的所有元素的乘积代替该维度的其他元素,以移除该维度。 |
|
无 |
|
计算Tensor指定维度元素的和。 |
|
无 |
|
对输入Tensor中元素去重。 |
|
无 |
比较运算
接口名 |
概述 |
支持平台 |
警告 |
逐元素比较两个输入Tensor是否相等。 |
|
无 |
|
按元素比较输入参数 \(input > other\) 的值,输出结果为bool值。 |
|
无 |
|
给定两个张量(Tensors),逐元素比较它们,以检查第一个张量中的每个元素是否大于或等于第二个张量中的相应元素。 |
|
无 |
|
按元素比较输入参数 \(input,other\) 的值,输出结果为bool值。 |
|
无 |
|
返回一个布尔型Tensor,表示 input 的每个元素与 other 的对应元素在给定容忍度内是否“接近”。 |
|
无 |
|
判断输入数据每个位置上的元素是否是有限数。 |
|
无 |
|
逐元素计算 \(input <= other\) 的bool值。 |
|
无 |
|
逐元素计算 \(input < other\) ,返回为bool。 |
|
无 |
|
逐元素计算 \(input <= other\) 的bool值。 |
|
无 |
|
|
无 |
||
逐元素计算两个输入Tensor中的最大值。 |
|
如果所有输入都为标量int类型,在GRAPH模式下,输出为int32类型的Tensor,在PYNATIVE模式下,输出为int64类型的Tensor。 |
|
逐元素计算两个输入Tensor中的最小值。 |
|
无 |
|
计算两个Tensor是否不相等。 |
|
无 |
|
|
|
无 |
|
沿给定维度查找 k 个最大或最小元素和对应的索引。 |
|
如果 sorted 设置为False, 由于在不同平台上存在内存排布以及遍历方式不同等问题,sorted 设置为False时计算结果的显示顺序可能会出现不一致的情况。 |
|
按指定顺序对输入Tensor的指定维上的元素进行排序。 |
|
目前能良好支持的数据类型有:float16、uint8、int8、int16、int32、int64。如果使用float32,可能产生精度误差。 |
BLAS和LAPACK运算
接口名 |
概述 |
支持平台 |
警告 |
对输入的两个三维矩阵batch1与batch2相乘,并将结果与input相加。 |
|
无 |
|
基于batch维度的两个Tensor的矩阵乘法,仅支持三维。 |
|
无 |
|
计算输入矩阵的逆。 |
|
无 |
|
计算两个数组的矩阵乘积。 |
|
无 |
|
返回 input 的主对角线方向上的总和。 |
|
无 |
其他运算
接口名 |
概述 |
支持平台 |
警告 |
将输入shape广播到目标shape。 |
|
无 |
|
返回一个元组(最值、索引),其中最值是输入Tensor input 沿维度 dim 的累积最大值,索引是每个最大值的索引位置。 |
|
无 |
|
返回一个元组(最值、索引),其中最值是输入Tensor input 沿维度 dim 的累积最小值,索引是每个最小值的索引位置。 |
|
无 |
|
计算输入Tensor input 沿轴 dim 的累积和。 |
|
无 |
|
沿着从 start_dim 到 end_dim 的维度,对输入Tensor进行展平。 |
|
无 |
|
沿给定轴翻转Tensor中元素的顺序。 |
|
无 |
|
沿着轴重复Tensor的元素,类似 numpy.repeat。 |
|
仅Atlas A2训练系列产品支持。 |
|
返回位置索引,根据这个索引将 values 插入 sorted_sequence 后,sorted_sequence 的最内维度的顺序保持不变。 |
|
无 |
|
返回输入Tensor input 的下三角形部分(包含对角线和下面的元素),并将其他元素设置为0。 |
|
无 |
mindspore.mint.nn
损失函数
接口名 |
概述 |
支持平台 |
警告 |
L1Loss用于计算预测值和目标值之间的平均绝对误差。 |
|
无 |
卷积层
接口名 |
概述 |
支持平台 |
警告 |
将提取出的滑动局部区域块还原成更大的输出Tensor。 |
|
无 |
|
从一个batch的输入Tensor中提取滑动局部块。 |
|
无 |
归一化层
接口名 |
概述 |
支持平台 |
警告 |
在mini-batch输入上进行组归一化。 |
|
无 |
非线性激活层 (加权和,非线性)
接口名 |
概述 |
支持平台 |
警告 |
高斯误差线性单元激活函数(Gaussian Error Linear Unit)。 |
|
无 |
|
逐元素计算Hard Shrink激活函数。 |
|
无 |
|
逐元素计算Hard Sigmoid激活函数。 |
|
无 |
|
逐元素计算Hard Swish激活函数。 |
|
无 |
|
在指定轴上对输入Tensor应用LogSoftmax函数。 |
|
无 |
|
逐元素计算输入Tensor的MISH(A Self Regularized Non-Monotonic Neural Activation Function 自正则化非单调神经激活函数)。 |
|
无 |
|
逐元素计算PReLU(PReLU Activation Operator)激活函数。 |
|
无 |
|
逐元素计算ReLU(Rectified Linear Unit activation function)修正线性单元激活函数。 |
|
无 |
|
逐元素计算激活函数SELU(Scaled exponential Linear Unit)。 |
|
无 |
|
将Softmax函数应用于n维输入Tensor。 |
|
无 |
|
逐元素计算Soft Shrink激活函数。 |
|
无 |
线性层
接口名 |
概述 |
支持平台 |
警告 |
全连接层。 |
|
在PYNATIVE模式下,如果 bias 为 |
Dropout层
接口名 |
概述 |
支持平台 |
警告 |
随机丢弃层。 |
|
无 |
池化层
接口名 |
概述 |
支持平台 |
警告 |
对输入张量应用二维平均池化,可视为二维输入平面的组合。 |
|
无 |
损失函数
接口名 |
概述 |
支持平台 |
警告 |
输入 input 经过sigmoid激活函数后作为预测值, 用此预测值计算和目标值之间的二值交叉熵损失。 |
|
无 |
|
用于计算预测值与标签值之间的均方误差。 |
|
无 |
mindspore.mint.nn.functional
卷积函数
接口名 |
概述 |
支持平台 |
警告 |
将提取出的滑动局部区域块还原成更大的输出Tensor。 |
|
目前,只支持3-D或4-D(包含批维度)的类图像输出Tensor。 |
|
从一个batch的输入Tensor中提取滑动局部块。 |
|
目前,只支持4-D(包含批维度)的类图像Tensor。 对于Ascend,仅Atlas A2以上平台支持。 |
池化函数
接口名 |
概述 |
支持平台 |
警告 |
在输入Tensor上应用2D平均池化,输入Tensor可以看作是由一系列2D平面组成的。 |
|
无 |
|
二维最大值池化。 |
|
只支持 Atlas A2 训练系列产品。 |
非线性激活函数
接口名 |
概述 |
支持平台 |
警告 |
对输入数据进行批量归一化和更新参数。 |
|
无 |
|
指数线性单元激活函数。 |
|
无 |
|
高斯误差线性单元激活函数。 |
|
无 |
|
在mini-batch输入上进行组归一化。 |
|
无 |
|
Hard Shrink激活函数。 |
|
无 |
|
Hard Sigmoid激活函数。 |
|
无 |
|
Hard Swish激活函数。 |
|
无 |
|
在mini-batch输入上应用层归一化(Layer Normalization)。 |
|
无 |
|
leaky_relu激活函数。 |
|
无 |
|
在指定轴上对输入Tensor应用LogSoftmax函数。 |
|
无 |
|
逐元素计算输入Tensor的MISH(A Self Regularized Non-Monotonic Neural Activation Function 自正则化非单调神经激活函数)。 |
|
无 |
|
带参数的线性修正单元激活函数(Parametric Rectified Linear Unit activation function)。 |
|
无 |
|
对输入Tensor逐元素计算线性修正单元激活函数(Rectified Linear Unit)值。 |
|
无 |
|
激活函数selu(Scaled exponential Linear Unit)。 |
|
无 |
|
逐元素计算Sigmoid激活函数。 |
|
无 |
|
逐元素计算激活函数SiLU(Sigmoid Linear Unit)。 |
|
无 |
|
在指定轴上对输入Tensor执行Softmax激活函数做归一化操作。 |
|
无 |
|
将softplus函数作用于 input 的每个元素上。 |
|
无 |
|
Soft Shrink激活函数。 |
|
无 |
|
逐元素计算输入元素的双曲正切。 |
|
无 |
线性函数
接口名 |
概述 |
支持平台 |
警告 |
对输入 input 应用全连接操作。 |
|
这是一个实验性API,后续可能修改或删除。 在PYNATIVE模式下,如果 bias 不是1D, input 不可以大于6D。 |
Dropout函数
接口名 |
概述 |
支持平台 |
警告 |
在训练期间,以服从伯努利分布的概率 p 随机将输入Tensor的某些值归零,起到减少神经元相关性的作用,避免过拟合。 |
|
无 |
稀疏函数
接口名 |
概述 |
支持平台 |
警告 |
以 input 中的值作为索引,从 weight 中查询对应的embedding向量。 |
|
在Ascend后端, input 的值非法将导致不可预测的行为。 |
|
返回一个one-hot类型的Tensor。 |
|
无 |
损失函数
接口名 |
概述 |
支持平台 |
警告 |
计算预测值 input 和 目标值 target 之间的二值交叉熵(度量两个概率分布间的差异性信息)损失。 |
|
input 的值必须要在0-1范围内。 |
|
|
输入经过sigmoid激活函数后作为预测值, binary_cross_entropy_with_logits 计算预测值和目标值之间的二值交叉熵损失。 |
|
无 |
用于计算预测值和目标值之间的平均绝对误差。 |
|
无 |
|
计算预测值和标签值之间的均方误差。 |
|
无 |
Vision函数
接口名 |
概述 |
支持平台 |
警告 |
给定一个输入和一个网格,使用网格中的输入值和像素位置计算输出。 |
|
无 |
|
根据参数 pad 对输入进行填充。 |
|
circular 模式性能较差,不推荐使用。 |
mindspore.mint.optim
接口名 |
概述 |
支持平台 |
警告 |
Adaptive Moment Estimation Weight Decay(AdamW)算法的实现。 |
|
这是一个实验性的优化器接口,需要和 LRScheduler 下的动态学习率接口配合使用。 对于Ascend,仅Atlas A2以上平台支持。 |
mindspore.mint.linalg
逆数
接口名 |
概述 |
支持平台 |
警告 |
计算输入矩阵的逆。 |
|
无 |
mindspore.mint.special
逐元素运算
接口名 |
概述 |
支持平台 |
警告 |
逐元素计算 input 的互补误差函数。 |
|
无 |
|
逐元素计算Tensor input 以2为底的指数。 |
|
无 |
|
逐元素计算输入Tensor的指数,然后减去1。 |
|
无 |
|
对输入Tensor逐元素加一后计算自然对数。 |
|
无 |
|
在指定轴上对输入Tensor应用LogSoftmax函数。 |
|
无 |
|
对输入数据进行四舍五入到最接近的整数数值。 |
|
无 |
|
计算输入的归一化正弦值。 |
|
无 |
mindspore.mint.distributed
接口名 |
概述 |
支持平台 |
警告 |
汇聚指定的通信组中的Tensor,并返回汇聚后的张量。 |
|
无 |
|
汇聚指定的通信组中的Tensor,并返回汇聚后的张量。 |
|
无 |
|
汇聚指定的通信组中的Python对象。 |
|
无 |
|
使用指定方式对通信组内的所有设备的Tensor数据进行规约操作,所有设备都得到相同的结果,返回规约操作后的张量。 |
|
无 |
|
根据用户输入的张量列表,将对应的张量发送到远端设备,并从其他设备接收张量,返回一个接收的张量列表。 |
|
无 |
|
根据用户输入的切分大小,把输入tensor切分后,发送到其他的设备上,并从其他设备接收切分块,然后合并到一个输出tensor中。 |
|
无 |
|
同步通信域内的多个进程。 |
|
无 |
|
异步地发送和接收张量。 |
|
无 |
|
对输入数据整组广播。 |
|
无 |
|
对输入Python对象进行整组广播。 |
|
无 |
|
销毁指定通讯group。 |
|
无 |
|
对通信组的输入张量进行聚合。 |
|
无 |
|
对通信组的输入Python对象进行聚合。 |
|
无 |
|
在指定通信组中获取当前分布式后端的名称。 |
|
无 |
|
由指定通信组中的设备序号获取通信集群中的全局设备序号。 |
|
无 |
|
由通信集群中的全局设备序号获取指定用户通信组中的rank ID。 |
|
无 |
|
获取指定通信组中的进程,并将通信组中的进程编号以列表方式返回。 |
|
无 |
|
在指定通信组中获取当前的设备序号。 |
|
无 |
|
获取指定通信组实例的rank_size。 |
|
无 |
|
初始化通信服务并创建默认通讯group(group=GlobalComm.WORLD_COMM_GROUP)。 |
|
无 |
|
异步接收张量到指定线程。 |
|
无 |
|
异步发送张量到指定线程。 |
|
无 |
|
创建用户自定义的通信组实例。 |
|
无 |
|
用于存放关于'isend'、'irecv'相关的信息, 并用于 batch_isend_irecv 接口的入参。 |
|
无 |
|
同步接收张量到指定线程。 |
|
无 |
|
规约指定通信组中的张量,并将规约结果发送到目标为dst的进程(全局的进程编号)中,返回发送到目标进程的张量。 |
|
无 |
|
规约并且分发指定通信组中的张量,返回分发后的张量。 |
|
无 |
|
规约并且分发指定通信组中的张量,返回分发后的张量。 |
|
无 |
|
对输入张量进行均匀散射到通信域的卡上。 |
|
无 |
|
对输入Python对象列表进行均匀散射到通信域的卡上。 |
|
无 |
|
同步发送张量到指定线程。 |
|
无 |