mindspore.mint

mindspore.mint提供了大量的functional、nn、优化器接口,API用法及功能等与业界主流用法一致,方便用户参考使用。 mint接口当前是实验性接口,在图编译模式为O0和PyNative模式下性能比ops更优。当前暂不支持图下沉模式及CPU、GPU后端,后续会逐步完善。

模块导入方法如下:

from mindspore import mint

Tensor

创建运算

接口名

概述

支持平台

警告

mindspore.mint.arange

创建一个从 start 开始, end 结束(不含),步长为 step 序列(一维张量)。

Ascend

mindspore.mint.eye

创建一个主对角线上元素为1,其余元素为0的Tensor。

Ascend

mindspore.mint.ones

创建一个值全为1的Tensor。

Ascend

mindspore.mint.ones_like

创建一个数值全为1的Tensor,shape和 input 相同,dtype由 dtype 决定。

Ascend

mindspore.mint.zeros

创建一个值全为0的Tensor。

Ascend

mindspore.mint.zeros_like

创建一个数值全为0的Tensor,shape和 input 相同,dtype由 dtype 决定。

Ascend

索引、切分、连接、突变运算

接口名

概述

支持平台

警告

mindspore.mint.cat

在指定维度上拼接输入Tensor。

Ascend

mindspore.mint.gather

返回输入Tensor在指定 index 索引对应的元素组成的切片。

Ascend

在Ascend后端,以下场景将导致不可预测的行为: 正向执行流程中,当 index 的取值不在范围 [-input.shape[dim], input.shape[dim]) 内; 反向执行流程中,当 index 的取值不在范围 [0, input.shape[dim]) 内。

mindspore.mint.index_select

返回一个新的Tensor,该Tensor沿维度 dimindex 中给定的索引对 input 进行选择。

Ascend

mindspore.mint.permute

按照输入 dims 的维度顺序排列输入Tensor。

Ascend

mindspore.mint.scatter_add

src 中所有的元素添加到 inputindex 指定的索引处。

Ascend

mindspore.mint.split

根据指定的轴将输入Tensor切分成块.。

Ascend

mindspore.mint.narrow

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

Ascend

mindspore.mint.nonzero

返回所有非零元素下标位置。

Ascend

mindspore.mint.tile

通过复制 dimsinput 来创建新的Tensor。

Ascend

mindspore.mint.stack

在指定轴上对输入Tensor序列进行堆叠。

Ascend

mindspore.mint.where

返回一个Tensor,Tensor的元素从 inputother 中根据 condition 选择。

Ascend

随机采样

接口名

概述

支持平台

警告

mindspore.mint.normal

根据正态(高斯)随机数分布生成随机数。

Ascend

mindspore.mint.rand_like

返回shape与输入相同,类型为 dtype 的Tensor,dtype由输入决定,其元素取值服从 \([0, 1)\) 区间内的均匀分布。

Ascend

mindspore.mint.rand

返回一个Tensor,shape和dtype由输入决定,其元素为服从均匀分布的 \([0, 1)\) 区间的数字。

Ascend

数学运算

逐元素运算

接口名

概述

支持平台

警告

mindspore.mint.abs

逐元素计算输入Tensor的绝对值。

Ascend

mindspore.mint.add

other 缩放 scalar 后与 input 相加。

Ascend

mindspore.mint.clamp

将输入Tensor的值裁剪到指定的最小值和最大值之间。

Ascend

mindspore.mint.atan2

逐元素计算input/other的反正切值。

Ascend

mindspore.mint.arctan2

mindspore.mint.atan2() 的别名。

Ascend

mindspore.mint.ceil

向上取整函数。

Ascend

mindspore.mint.cos

逐元素计算输入的余弦。

Ascend

如果使用float64,可能会存在精度丢失的问题。

mindspore.mint.div

逐元素计算第一个输入Tensor除以第二输入Tensor的商。

Ascend

mindspore.mint.divide

mindspore.mint.div() 的别名。

Ascend

mindspore.mint.erf

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

Ascend

mindspore.mint.erfinv

计算输入的逆误差函数。

Ascend

mindspore.mint.exp

逐元素计算 input 的指数。

Ascend

mindspore.mint.floor

逐元素向下取整函数。

Ascend

mindspore.mint.log

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

Ascend

如果输入值在(0, 0.01]或[0.95, 1.05]范围内,则输出精度可能会存在误差。

mindspore.mint.logical_and

逐元素计算两个Tensor的逻辑与运算。

Ascend

mindspore.mint.logical_not

逐元素计算一个Tensor的逻辑非运算。

Ascend

mindspore.mint.logical_or

逐元素计算两个Tensor的逻辑或运算。

Ascend

mindspore.mint.mul

两个Tensor逐元素相乘。

Ascend

mindspore.mint.neg

计算输入input的相反数并返回。

Ascend

mindspore.mint.negative

mindspore.mint.neg() 的别名。

Ascend

mindspore.mint.pow

计算 input 中每个元素的 exponent 次幂。

Ascend

mindspore.mint.reciprocal

返回输入Tensor每个元素的倒数。

Ascend

mindspore.mint.rsqrt

逐元素计算输入Tensor元素的平方根倒数。

Ascend

mindspore.mint.sigmoid

逐元素计算Sigmoid激活函数。

Ascend

mindspore.mint.sin

逐元素计算输入Tensor的正弦。

Ascend

mindspore.mint.sqrt

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

Ascend

mindspore.mint.square

逐元素返回Tensor的平方。

Ascend

mindspore.mint.sub

other 缩放 scalar 后与 input 相减。

Ascend

mindspore.mint.tanh

逐元素计算输入元素的双曲正切。

Ascend

Reduction运算

接口名

概述

支持平台

警告

mindspore.mint.argmax

返回输入Tensor在指定轴上的最大值索引。

Ascend

mindspore.mint.all

默认情况下,通过对维度中所有元素进行“逻辑与”来减少 input 的维度。

Ascend

mindspore.mint.any

默认情况下,通过对维度中所有元素进行“逻辑或”来减少 input 的维度。

Ascend

mindspore.mint.max

在给定轴上计算输入Tensor的最大值。

Ascend

mindspore.mint.mean

默认情况下,移除输入所有维度,返回 input 中所有元素的平均值。

Ascend

mindspore.mint.min

在给定轴上计算输入Tensor的最小值。

Ascend

mindspore.mint.prod

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

Ascend

mindspore.mint.sum

计算Tensor指定维度元素的和。

Ascend

mindspore.mint.unique

对输入Tensor中元素去重。

Ascend

比较运算

接口名

概述

支持平台

警告

mindspore.mint.eq

逐元素比较两个输入Tensor是否相等。

Ascend

mindspore.mint.greater

按元素比较输入参数 \(input > other\) 的值,输出结果为bool值。

Ascend

mindspore.mint.greater_equal

输入两个Tensor,逐元素比较第一个Tensor是否大于等于第二个Tensor。

Ascend

mindspore.mint.gt

按元素比较输入参数 \(input,other\) 的值,输出结果为bool值。

Ascend

mindspore.mint.isclose

返回一个布尔型Tensor,表示 input 的每个元素与 other 的对应元素在给定容忍度内是否“接近”。

Ascend

mindspore.mint.isfinite

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

Ascend

mindspore.mint.le

逐元素计算 \(input <= other\) 的bool值。

Ascend

mindspore.mint.less

逐元素计算 \(input < other\) ,返回为bool。

Ascend

mindspore.mint.less_equal

逐元素计算 \(input <= other\) 的bool值。

Ascend

mindspore.mint.lt

mindspore.mint.less() 的别名。

Ascend

mindspore.mint.maximum

逐元素计算两个输入Tensor中的最大值。

Ascend

mindspore.mint.minimum

逐元素计算两个输入Tensor中的最小值。

Ascend

mindspore.mint.ne

计算两个Tensor是否不相等。

Ascend

mindspore.mint.topk

沿给定维度查找 k 个最大或最小元素和对应的索引。

Ascend

如果 sorted 设置为False, 由于在不同平台上存在内存排布以及遍历方式不同等问题,sorted 设置为False时计算结果的显示顺序可能会出现不一致的情况。

mindspore.mint.sort

按指定顺序对输入Tensor的指定维上的元素进行排序。

Ascend

目前能良好支持的数据类型有:float16、uint8、int8、int16、int32、int64。如果使用float32,可能产生精度误差。

BLAS和LAPACK运算

接口名

概述

支持平台

警告

mindspore.mint.bmm

基于batch维度的两个Tensor的矩阵乘法,仅支持三维。

Ascend

mindspore.mint.inverse

计算输入矩阵的逆。

Ascend

mindspore.mint.matmul

计算两个数组的矩阵乘积。

Ascend

其他运算

接口名

概述

支持平台

警告

mindspore.mint.broadcast_to

将输入shape广播到目标shape。

Ascend

mindspore.mint.cumsum

计算输入Tensor input 沿轴 dim 的累积和。

Ascend

mindspore.mint.flip

沿给定轴翻转Tensor中元素的顺序。

Ascend

mindspore.mint.repeat_interleave

沿着轴重复Tensor的元素,类似 numpy.repeat

Ascend

仅Atlas A2训练系列产品支持。

mindspore.mint.searchsorted

返回位置索引,根据这个索引将 values 插入 sorted_sequence 后,sorted_sequence 的最内维度的顺序保持不变。

Ascend

mindspore.mint.nn

卷积层

接口名

概述

支持平台

警告

mindspore.mint.nn.Fold

将提取出的滑动局部区域块还原成更大的输出Tensor。

Ascend

mindspore.mint.nn.Unfold

从一个batch的输入Tensor中提取滑动局部块。

Ascend

线性层

接口名

概述

支持平台

警告

mindspore.mint.nn.Linear

全连接层。

Ascend

Dropout层

接口名

概述

支持平台

警告

mindspore.mint.nn.Dropout

随机丢弃层。

Ascend

损失函数

接口名

概述

支持平台

警告

mindspore.mint.nn.BCEWithLogitsLoss

输入 input 经过sigmoid激活函数后作为预测值, 用此预测值计算和目标值之间的二值交叉熵损失。

Ascend

mindspore.mint.nn.functional

卷积函数

接口名

概述

支持平台

警告

mindspore.mint.nn.functional.fold

将提取出的滑动局部区域块还原成更大的输出Tensor。

Ascend

目前,只支持3-D或4-D(包含批维度)的类图像输出Tensor。

mindspore.mint.nn.functional.unfold

从一个batch的输入Tensor中提取滑动局部块。

Ascend

目前,只支持4-D(包含批维度)的类图像Tensor。 对于Ascend,仅Atlas A2以上平台支持。

池化函数

接口名

概述

支持平台

警告

mindspore.mint.nn.functional.max_pool2d

二维最大值池化。

Ascend

只支持 Atlas A2 训练系列产品。

非线性激活函数

接口名

概述

支持平台

警告

mindspore.mint.nn.functional.batch_norm

对输入数据进行批量归一化和更新参数。

Ascend

mindspore.mint.nn.functional.elu

指数线性单元激活函数。

Ascend

mindspore.mint.nn.functional.gelu

高斯误差线性单元激活函数。

Ascend

mindspore.mint.nn.functional.group_norm

在mini-batch输入上进行组归一化。

Ascend

mindspore.mint.nn.functional.layer_norm

在mini-batch输入上应用层归一化(Layer Normalization)。

Ascend

mindspore.mint.nn.functional.leaky_relu

leaky_relu激活函数。

Ascend

mindspore.mint.nn.functional.relu

对输入Tensor逐元素计算线性修正单元激活函数(Rectified Linear Unit)值。

Ascend

mindspore.mint.nn.functional.sigmoid

逐元素计算Sigmoid激活函数。

Ascend

mindspore.mint.nn.functional.silu

按输入逐元素计算激活函数SiLU(Sigmoid Linear Unit)。

Ascend

mindspore.mint.nn.functional.softmax

在指定轴上对输入Tensor执行Softmax激活函数做归一化操作。

Ascend

mindspore.mint.nn.functional.softplus

将softplus函数作用于 input 的每个元素上。

Ascend

mindspore.mint.nn.functional.tanh

逐元素计算输入元素的双曲正切。

Ascend

线性函数

接口名

概述

支持平台

警告

mindspore.mint.nn.functional.linear

对输入 input 应用全连接操作。

Ascend

这是一个实验性API,后续可能修改或删除。

Dropout函数

接口名

概述

支持平台

警告

mindspore.mint.nn.functional.dropout

在训练期间,以服从伯努利分布的概率 p 随机将输入Tensor的某些值归零,起到减少神经元相关性的作用,避免过拟合。

Ascend

稀疏函数

接口名

概述

支持平台

警告

mindspore.mint.nn.functional.embedding

input 中的值作为索引,从 weight 中查询对应的embedding向量。

Ascend

在Ascend后端, input 的值非法将导致不可预测的行为。

mindspore.mint.nn.functional.one_hot

返回一个one-hot类型的Tensor。

Ascend

损失函数

接口名

概述

支持平台

警告

mindspore.mint.nn.functional.binary_cross_entropy

计算预测值 logits 和 目标值 labels 之间的二值交叉熵(度量两个概率分布间的差异性信息)损失。

Ascend

logits 的值必须要在0-1范围内。

mindspore.mint.nn.functional.binary_cross_entropy_with_logits

输入经过sigmoid激活函数后作为预测值, binary_cross_entropy_with_logits 计算预测值和目标值之间的二值交叉熵损失。

Ascend

Vision函数

接口名

概述

支持平台

警告

mindspore.mint.nn.functional.grid_sample

给定一个输入和一个网格,使用网格中的输入值和像素位置计算输出。

Ascend

mindspore.mint.nn.functional.pad

根据参数 pad 对输入进行填充。

Ascend

circular 模式性能较差,不推荐使用。

mindspore.mint.optim

接口名

概述

支持平台

警告

mindspore.mint.optim.AdamW

Adaptive Moment Estimation Weight Decay(AdamW)算法的实现。

Ascend

这是一个实验性的优化器接口,需要和 LRScheduler 下的动态学习率接口配合使用。 对于Ascend,仅Atlas A2以上平台支持。

mindspore.mint.linalg

逆数

接口名

概述

支持平台

警告

mindspore.mint.linalg.inv

计算输入矩阵的逆。

Ascend