mindspore.ops.primitive
可用于Cell的构造函数的算子。
动态shape的支持情况详见 算子动态shape支持情况 。
bfloat16数据类型的支持情况详见 支持列表 。
算子级并行过程各算子的使用约束详见 算子级并行使用约束 。
模块导入方法如下:
import mindspore.ops as ops
MindSpore中 mindspore.ops.primitive 接口与上一版本相比,新增、删除和支持平台的变化信息请参考 mindspore.ops.primitive API接口变更 。
算子原语
| Primitive是Python中算子原语的基类。 | |
| PrimitiveWithCheck是Python中原语的基类,定义了检查算子输入参数的函数,但是使用了C++源码中注册的推理方法。 | |
| PrimitiveWithInfer是Python中的原语基类,在python中定义了跟踪推理的函数。 | 
神经网络层算子
神经网络
| 接口名 | 概述 | 支持平台 | 警告 | 
| 对输入的多维数据进行二维平均池化运算。 | 
 | 无 | |
| 对输入的多维数据进行三维的平均池化运算。 | 
 | "kernel_size"在[1, 255]范围中。"strides"在[1, 63]范围中。 | |
| 对输入数据进行归一化(Batch Normalization)和更新参数。 | 
 | 如果该运算用于推理,并且输出"reserve_space_1"和"reserve_space_2"可用,则"reserve_space_1"的值与"mean"相同,"reserve_space_2"的值与"variance"相同。 对于Ascend 310,由于平方根指令,结果精度未能达到1‰。 | |
| 二维卷积层。 | 
 | 无 | |
| 计算二维转置卷积,也称为反卷积,实际不是真正的反卷积。 | 
 | 无 | |
| 三维卷积层。 | 
 | 无 | |
| 计算三维转置卷积,也称为反卷积(实际不是真正的反卷积)。 | 
 | 无 | |
| 对输入中给定的logits执行贪婪解码。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| Dropout是一种正则化手段,通过在训练中以 \(1 - keep\_prob\) 的概率随机将神经元输出设置为0,起到减少神经元相关性的作用,避免过拟合。 | 
 | 无 | |
| 在训练期间,根据概率 \(1-keep\_prob\) ,随机地将一些通道设置为0,且服从伯努利分布。 | 
 | 无 | |
| 在训练期间,以服从伯努利分布的概率 \(1-keep\_prob\) 随机将输入Tensor的某些通道归零。 | 
 | 无 | |
| 为输入序列应用一个单层GRU(gated recurrent unit)。 | 
 | 无 | |
| 将循环神经网络应用到输入上。 | 
 | 无 | |
| 根据指定的索引,返回输入Tensor的切片。 | 
 | 无 | |
| 扁平化(Flatten)输入Tensor,不改变0轴的size。 | 
 | 无 | |
| 此运算对由多个输入平面组成的输入信号进行3D分数最大池化。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 此操作使用基于流场网格的插值对2D input_x 进行采样,该插值通常由  | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 给定一个输入和一个网格,使用网格中的输入值和像素位置计算输出。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 在输入Tensor上应用层归一化(Layer Normalization)。 | 
 | 无 | |
| 局部响应归一化操作LRN(Local Response Normalization)。 | 
 | LRN在Ascend平台已废弃,存在潜在精度问题。建议使用其他归一化方法,如  | |
| 对输入执行长短期记忆(LSTM)网络。 | 
 | 无 | |
| 对输入的多维数据进行二维的最大池化运算。 | 
 | 无 | |
| 对输入的多维数据进行三维的最大池化运算。 | 
 | 无 | |
| 三维最大值池化,返回最大值结果及其索引值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| MaxPool2D的逆过程。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 
 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 通过指定的填充模式和大小对输入Tensor进行填充。 | 
 | 无 | |
| 根据参数 paddings 对输入进行填充。 | 
 | 无 | |
| 将输入Tensor的最后一个维度从1扩展到 pad_dim_size ,其填充值为0。 | 
 | 无 | |
| 使用双三次插值调整图像大小到指定的大小。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 使用最近邻插值算法调整输入Tensor为指定大小。 | 
 | 无 | |
| 执行最近邻上采样操作。 | 
 | 无 | |
| 输入为五维度Tensor,跨其中三维执行三线性插值上调采样。 | 
 | 无 | 
损失函数
| 接口名 | 概述 | 支持平台 | 警告 | 
| 输入经过sigmoid激活函数后作为预测值,BCEWithLogitsLoss 计算预测值和目标值之间的二值交叉熵损失。 | 
 | 无 | |
| 计算目标值和预测值之间的二值交叉熵损失值。 | 
 | \(x\) 的值必须在0到1之间。 | |
| 计算CTC(Connectionist Temporal Classification)损失和梯度。 | 
 | 无 | |
| 计算CTC(Connectionist Temporal Classification)损失和梯度。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 计算输入 logits 和 labels 的KL散度。 | 
 | 无 | |
| 用于计算L2范数的一半,但不对结果进行开方操作。 | 
 | 无 | |
| 创建一个损失函数,用于最小化多分类任务的合页损失。 | 
 | 无 | |
| 创建一个损失函数,用于优化输入和输出之间的多分类合页损失。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 获取预测值和目标值之间的负对数似然损失。 | 
 | 无 | |
| 计算相对于softmax输出的RNNTLoss及其梯度。 | 
 | 无 | |
| 计算预测值与真实值之间的sigmoid交叉熵。 | 
 | 无 | |
| 计算平滑L1损失,该L1损失函数有稳健性。 | 
 | 无 | |
| SoftMarginLoss操作。 | 
 | 无 | |
| 使用one-hot编码获取预测值和真实之间的softmax交叉熵。 | 
 | 无 | |
| 计算预测值和标签之间的稀疏softmax交叉熵。 | 
 | 无 | |
| 三元组损失函数。 | 
 | 无 | 
激活函数
| 接口名 | 概述 | 支持平台 | 警告 | 
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 高斯误差线性单元激活函数(Gaussian Error Linear Units activation function)。 | 
 | 无 | |
| 门线性单元函数(Gated Linear Unit function)。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| Hard Shrink激活函数。 | 
 | 无 | |
| 分段性逼近激活函数。 | 
 | 无 | |
| Hard Swish激活函数。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 逐元素计算输入Tensor的MISH(Self Regularized Non-Monotonic Neural Activation Function 自正则化非单调神经激活函数)。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 激活函数SeLU(Scaled exponential Linear Unit)。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 在指定轴上使用Softmax函数做归一化操作。 | 
 | 无 | |
| Softplus激活函数。 | 
 | 无 | |
| Soft Shrink激活函数。 | 
 | 无 | |
| Softsign激活函数。 | 
 | 无 | |
| 逐元素计算输入元素的双曲正切。 | 
 | 无 | 
优化器
| 接口名 | 概述 | 支持平台 | 警告 | 
| 通过Adam算法更新梯度。 | 
 | 无 | |
| 通过具有权重衰减的自适应矩估计算法(AdamWeightDecay)更新梯度。 | 
 | 无 | |
| 二维自适应平均池化。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 三维自适应平均池化。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 根据Adadelta算法更新相关参数。 | 
 | 无 | |
| 根据Adagrad算法更新相关参数。 | 
 | 无 | |
| 根据Adagrad算法更新 var 。 | 
 | 无 | |
| 根据Adagrad算法更新相关参数。 | 
 | 无 | |
| 根据AdaMax算法更新相关参数。 | 
 | 无 | |
| 根据Adam算法更新变量var。 | 
 | 无 | |
| 根据AddSign算法更新相关参数。 | 
 | 无 | |
| 居中RMSProp算法优化器。 | 
 | 在此算法的密集实现中, mean_gradient 、 mean_square 和 moment 在 grad 为零时仍将被更新。但在稀疏实现中, mean_gradient 、 mean_square 和 moment 不会在 grad 为零的迭代中被更新。 | |
| 根据FTRL算法更新相关参数。 | 
 | 无 | |
| 通过从 var 中减去 alpha * delta 来更新 var 。 | 
 | 无 | |
| 使用动量算法的优化器。 | 
 | 无 | |
| 根据AddSign算法更新相关参数。 | 
 | 无 | |
| 根据Proximal Adagrad算法更新网络参数。 | 
 | 无 | |
| 根据FOBOS(Forward Backward Splitting)算法更新网络参数。 | 
 | 无 | |
| 实现均方根传播Root Mean Square prop(RMSProp)算法的优化器。 | 
 | 在该算法的稠密实现版本中,"mean_square"和"momemt"即使"grad"为零将仍被更新。但在该稀疏实现版本中,在"grad"为零的迭代"mean_squre"和"moment"将不被更新。 | |
| 对梯度的平方和应用LARS(layer-wise adaptive rate scaling)算法。 | 
 | 无 | |
| 根据Adagrad算法更新相关参数。 | 
 | 无 | |
| 根据Proximal Adagrad算法更新网络参数。 | 
 | 无 | |
| 计算随机梯度下降。 | 
 | 无 | |
| 根据FTRL-proximal算法更新相关参数。 | 
 | 无 | |
| 
 | Deprecated | 无 | 
距离函数
| 接口名 | 概述 | 支持平台 | 警告 | 
| 计算两个Tensor的p-norm距离。 | 
 | 无 | |
| 计算Levenshtein编辑距离。 | 
 | 如果输入 truth_indices 或者 hypothesis_indices 不是有序的, 可能会导致计算结果不符合预期, 建议调用该接口之前确保输入的稀疏张量 truth_indices 和 hypothesis_indices 都是升序排列的。 | |
| 返回输入矩阵或向量的p-范数。 | 
 | 无 | |
| 计算输入中每对行向量之间的p-范数距离。 | 
 | 无 | 
采样算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 计算与目标类完全匹配的抽样样本的位置id。 | 
 | 无 | |
| 使用log-uniform(Zipfian)分布对一组类别进行采样。 | 
 | 无 | |
| 使用均匀分布对一组类别进行采样。 | 
 | 无 | 
图像处理
| 接口名 | 概述 | 支持平台 | 警告 | 
| 解码边界框位置信息。 | 
 | 无 | |
| 编码边界框位置信息。 | 
 | 无 | |
| 检查边界框。 | 
 | 无 | |
| 从输入图像Tensor中提取切片并调整其大小。 | 
 | 无 | |
| ops.ExtractVolumePatches 从2.3版本开始已被弃用,并将在未来版本中被移除。 | Deprecated | 无 | |
| 计算矩形的IOU,即真实区域和预测区域的交并比。 | 
 | 无 | |
| L2范数归一化算子。 | 
 | 无 | |
| 非极大值抑制算法(NMS, Non-maximum Suppression)。 | 
 | 一次最多支持2864个输入框。 | |
| 使用双线性插值调整图像大小到指定的大小。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 感兴趣区域对齐(RoI Align)运算。 | 
 | 无 | 
文本处理
| 接口名 | 概述 | 支持平台 | 警告 | 
| n-grams出现重复,则更新对应n-gram词序列出现的概率。 | 
 | 无 | 
特征值检测
| 接口名 | 概述 | 支持平台 | 警告 | 
| ASDBase 是 Python 中具有特征值检测特性的算子的基类。 | 
 | 无 | 
数学运算算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 计算整数数组中每个值的出现次数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 计算单个或成批对称正定矩阵的Cholesky分解。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 给定复数的实部与虚部,返回一个复数的Tensor。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 返回输入复数的模。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 返回 x1 和 x2 沿着维度 dim 上的向量积(叉积)。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 傅里叶变换,可以对参数进行调整,以实现FFT/IFFT/RFFT/IRFFT。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更多详情请查看:  | 
 | 无 | 
逐元素运算
| 接口名 | 概述 | 支持平台 | 警告 | 
| 更多详情请查看:  | 
 | 无 | |
| 逐元素将所有输入的Tensor相加。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 将 x1 和 x2 的逐元素相除的结果乘以 value ,并将其添加到 input_data 中。 | 
 | 无 | |
| 将 x1 和 x2 的逐元素相乘的结果乘以 value ,并将其添加到 input_data 中。 | 
 | 无 | |
| 逐元素将所有输入的Tensor相加。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 逐元素计算第一类零阶修正Bessel函数值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算指数缩放第一类零阶修正贝塞尔函数。 | 
 | 无 | |
| 逐元素计算第一类一阶修正Bessel函数值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算指数缩放第一类一阶修正贝塞尔函数。 | 
 | 无 | |
| 逐元素计算输入数据的第一类零阶的Bessel函数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算输入数据的第一类一阶的Bessel函数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算第二类零阶修正Bessel函数值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算指数缩放第二类零阶修正Bessel函数值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算第二类一阶修正Bessel函数值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算指数缩放第二类一阶修正Bessel函数值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算输入数据的第二类零阶Bessel函数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算输入数据的第二类一阶Bessel函数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素执行两个Tensor的与运算。 | 
 | 无 | |
| 逐元素执行两个Tensor的或运算。 | 
 | 无 | |
| 逐元素执行两个Tensor的异或运算。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 计算输入的lgamma函数的导数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算第一输入Tensor除以第二输入Tensor的商。 | 
 | 无 | |
| 对 x1 和 x2 逐元素执行安全除法,如果 x2 的元素为0,则返回0。 | 
 | 无 | |
| 此算子使用爱因斯坦求和约定(Einsum)进行Tensor计算。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 返回包含输入Tensor的虚部。 | 
 | 无 | |
| 按元素计算输入Tensor的倒数。 | 
 | 无 | |
| 翻转输入Tensor的所有元素。 | 
 | 无 | |
| 基于权重参数计算两个Tensor之间的线性插值。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 逐元素计算两个Tensor的逻辑与运算。 | 
 | 无 | |
| 逐元素计算一个Tensor的逻辑非运算。 | 
 | 无 | |
| 逐元素计算两个Tensor的逻辑或运算。 | 
 | 无 | |
| 逐元素计算两个Tensor的逻辑异或运算。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 逐元素计算Tensor的logit值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 将第一个输入Tensor逐元素除以第二个输入Tensor,并取余。 | 
 | 输入数据不支持0。 当输出包含的元素个数超过2048时,该算子不能保证双千分之一的精度要求。 由于架构的差异,在NPU和CPU上生成的结果可能不一致。 如果shape表示为 \((D1, D2, ..., Dn)\) ,则 \(D1*D2... *DN<=1000000,n<=8\) 。 | |
| 更多详情请查看:  | 
 | 无 | |
| 逐元素计算输入乘积。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 将极坐标转化为笛卡尔坐标。 | 
 | 无 | |
| 计算关于 x 的多伽马函数的 \(a\) 阶导数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 第一个输入Tensor元素为分子,第二个输入Tensor元素为分母,逐元素进行浮点型除法运算。 | 
 | 无 | |
| 返回输入Tensor的倒数。 | 
 | 无 | |
| 逐元素计算最接近输入数据的整数。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 符号函数,计算输入Tensor元素的执行符号。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 第一个输入Tensor元素中减去第二个输入Tensor,并返回其平方。 | 
 | 无 | |
| 计算输入Tensor的平方和。 | 
 | 无 | |
| 逐元素用第一个输入Tensor减去第二个输入Tensor。 | 
 | 无 | |
| 逐元素计算输入元素的正切值。 | 
 | 无 | |
| 返回一个新的张量,该张量具有输入元素的截断整数值。 | 
 | 无 | |
| 将第一个输入Tensor与第二个输入Tensor逐元素相除,结果将向0取整。 | 
 | 无 | |
| 逐元素取模。 | 
 | 输入数值不能为0。 当输入含有超过2048个元素,该操作不能保证千分之二的精度要求。 由于架构不同,该算子在NPU和CPU上的计算结果可能不一致。 若shape为(D1、D2...、Dn),则D1*D2...*DN<=1000000,n<=8。 | |
| 将第一个输入Tensor除以第二个输入Tensor。 | 
 | 无 | |
| 计算第一个输入Tensor乘以第二个输入Tensor的对数。 | 
 | 无 | |
| 计算输入Tensor的Hurwitz zeta函数ζ(x,q)值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | 
Reduction算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 返回输入Tensor在指定轴上的最大值索引。 | 
 | 无 | |
| 在给定轴上计算输入Tensor的最大值,并且返回最大值和索引。 | 
 | 如果有多个最大值,则取第一个最大值的索引。 axis 的取值范围为[-dims, dims - 1]。"dims"为 input 的维度长度。 | |
| 返回输入Tensor在指定轴上的最小值索引。 | 
 | 无 | |
| 在给定轴上计算输入Tensor的最小值,并且返回最小值和索引。 | 
 | 如果有多个最小值,则取第一个最小值的索引。 axis 的取值范围为[-dims, dims - 1]。"dims"为 input 的维度长度。 | |
| 输出Tensor指定维度 axis 上的中值与其对应的索引。 | 
 | 如果 input 的中值不唯一时(输入中有重复值且重复值恰好为中值), indices 不一定包含第一个出现的中值。 indices 包含的索引与该算子的具体实现方式和后端类型相关,因此某些情况下,CPU和GPU的返回值可能不相同。 如果 global_median 为  | |
| 更多详情请查看:  | 
 | 无 | |
| 默认情况下,通过对指定维度所有元素进行逻辑或运算来移除该维度。 | 
 | 无 | |
| 默认情况下,使用指定维度的最大值代替该维度的其他元素,以移除该维度。 | 
 | 无 | |
| 默认情况下,使用指定维度的平均值代替该维度的其他元素,以移除该维度。 | 
 | 无 | |
| 默认情况下,使用指定维度的最小值代替该维度的其他元素,以移除该维度。 | 
 | 无 | |
| 默认情况下,使用指定维度所有元素的乘积代替该维度的其他元素,以移除该维度。 | 
 | 无 | |
| 默认情况下,输出Tensor各维度上的和,以达到对所有维度进行归约的目的。 | 
 | 无 | 
比较算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 逐元素计算abs(x-y),如果小于tolerance则为True,否则为False。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 计算两个Tensor的相同元素的数量。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 判断目标标签是否在前 k 个预测中。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 确定输入Tensor每个位置上的元素是否为无穷大或无穷小。 | 
 | 无 | |
| 判断输入数据每个位置上的值是否是NaN。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 沿最后一个维度查找 k 个最大元素和对应的索引。 | 
 | 如果 sorted 设置为  | 
线性代数算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 基于batch维度的两个Tensor的矩阵乘法。 | 
 | 无 | |
| 返回输入Tensor与偏置Tensor之和。 | 
 | 无 | |
| 计算两个一维Tensor的外积。 | 
 | 无 | |
| 将矩阵 a 和矩阵 b 相乘。 | 
 | 无 | |
| 计算输入矩阵的逆矩阵。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 计算一个普通矩阵与Householder矩阵的乘积。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 计算  | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 计算一个或多个矩阵的奇异值分解。 | 
 | 无 | 
Tensor操作算子
Tensor创建
| 接口名 | 概述 | 支持平台 | 警告 | 
| 创建一个与输入数据类型和shape都相同的Tensor,元素值为对应数据类型能表达的最小值。 | 
 | 无 | |
| 创建一个主对角线上元素为1,其余元素为0的Tensor。 | 
 | 无 | |
| Fill接口已弃用, 请使用  | Deprecated | 无 | |
| 返回一个在区间 start 和 stop (包括 start 和 stop )内均匀分布的,包含 num 个值的一维Tensor。 | 
 | 无 | |
| 返回一个one-hot类型的Tensor。 | 
 | 无 | |
| 创建一个值全为1的Tensor。 | 
 | 参数 shape 在后续版本中将不再支持Tensor类型的输入。 | |
| 返回值为1的Tensor,shape和数据类型与输入相同。 | 
 | 无 | |
| 创建一个值全为0的Tensor。 | 
 | 参数 shape 在后续版本中将不再支持Tensor类型的输入。 | |
| 返回值为0的Tensor,其shape和数据类型与输入Tensor相同。 | 
 | 无 | 
随机生成算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 以 p 的概率随机将输出的元素设置为0或1,服从伯努利分布。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 根据概率密度函数分布生成随机正值浮点数x。 | 
 | 无 | |
| 返回从输入Tensor对应行进行多项式概率分布采样出的Tensor。 | 
 | 无 | |
| 返回一个Tensor,其中每行包含从重复采样的多项式分布中抽取的 numsamples 个索引。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 从分类分布中抽取样本。 | 
 | 无 | |
| 对输入进行随机取样,返回取样索引和掩码。 | 
 | 无 | |
| 根据概率密度函数分布生成随机正值浮点数x。 | 
 | 无 | |
| 根据离散概率密度函数分布生成随机非负数浮点数i。 | 
 | 无 | |
| 生成从0到n-1不重复的n个随机样本。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 生成符合标准Laplace(mean=0, lambda=1)分布的随机数。 | 
 | 无 | |
| 根据标准正态(高斯)随机数分布生成随机数。 | 
 | 无 | |
| 根据均匀分布在区间 [minval, maxval) 中生成随机数。 | 
 | 无 | |
| 产生随机的浮点数,均匀分布在[0, 1)范围内。 | 
 | 无 | 
Array操作
| 接口名 | 概述 | 支持平台 | 警告 | 
| 基于一批仿射矩阵 theta 生成一个2D 或 3D 的流场(采样网格)。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 将批处理数据重新排列到空间数据中。 | 
 | 无 | |
| 
 | Deprecated | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 转换输入Tensor的数据类型。 | 
 | 无 | |
| 将shape为 \((*, C, H, W)\) 的Tensor的通道划分成 \(g\) 组,并按如下方式重新排列 \((*, \frac C g, g, H*W)\) ,同时保持原始Tensor的shape不变。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 将一个行向量重新排列成图像。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 返回输入Tensor在指定轴上的累积最小值与其对应的索引。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 计算 x 沿着指定axis的元素累计积。 | 
 | 无 | |
| 计算输入Tensor在指定轴上的累加和。 | 
 | 无 | |
| 返回源数据格式中的目标数据格式的维度索引。 | 
 | 无 | |
| 将深度数据重新排列到空间维度中。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 计算输入Tensor的数据类型,且返回的数据类型为 mindspore.dtype 。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 填充至少具有二维的Tensor的主对角线。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 创建一个Tensor,其shape由 shape 指定,其值则由 value 进行填充。 | 
 | 无 | |
| 确定元素是否包含非数字(NaN)、正无穷还是负无穷。 | 
 | 无 | |
| 逐元素计算输入Tensor的最大值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 使用输入窗口长度计算汉明窗口函数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 计算输入中每个元素的Heaviside步长函数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 返回一个rank为1的直方图,该直方图中的每个组的值表示数量。 | 
 | 无 | |
| 将输入Tensor的逐个元素作为直角三角形的直角边,并计算其斜边的值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更多详情请查看:  | 
 | 无 | |
| 计算正则化的下层不完全伽马函数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 计算正则化的上层不完全伽马函数。 | 
 | 无 | |
| 从一个batch的输入Tensor中提取滑动局部块。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 将Tensor y 加到Tensor x 的指定 axis 和 indices 。 | 
 | 无 | |
| 按 index 中给定的顺序选择索引,将输入Tensor x 的 dim 维度下的元素用 value 的值填充。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 根据 indices 中的下标值,使用 x2 中的数值替换 x1 中的相应元素的值。 | 
 | 无 | |
| 将 input_v 添加到 x 的特定行。 | 
 | 无 | |
| 逐元素将一个Tensor updates 添加到原Tensor var 的指定轴和索引处。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 从 x 的特定行减去 input_v 。 | 
 | 无 | |
| InplaceUpdate接口已废弃,请使用接口  | Deprecated | 无 | |
| 根据 indices,将 x 中的某些值更新为 v。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 计算索引的逆置换。 | 
 | 无 | |
| 返回一个bool型Tensor,表示 x1 的每个元素与 x2 的每个元素在给定容忍度内是否“接近”。 | 
 | 无 | |
| 逐个元素计算输入Tensor的最小公倍数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 将Tensor每个位置的值向左移动若干个比特位。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 返回一个大小为 steps 的1-D Tensor,其值从 \(base^{start}\) 到 \(base^{end}\) ,以 base 为底数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 将 LU_data 和 LU_pivots 还原为为P, L, U矩阵,其中P为置换矩阵,L为下三角矩阵,U为上三角矩阵。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更多详情请查看:  | 
 | 无 | |
| 返回一个Tensor。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 返回一个一维张量,其中的内容是 x 张量中对应于 mask 张量中True位置的值。 | 
 | 无 | |
| 提取一个Tensor中每个矩阵的中心带,中心带之外的所有值都设置为零。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 返回Tensor的对角线部分。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 构造以输入Tensor为对角线的矩阵。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更新批处理矩阵对角线的值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 求解线性方程组。 | 
 | 无 | |
| 从给定的Tensor生成网格矩阵。 | 
 | 无 | |
| 逐元素计算 p 维多元对数伽马函数值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 将输入中的 NaN 、正无穷大和负无穷大值分别替换为 nan 、 posinf 和 neginf 指定的值。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更多详情请查看:  | 
 | 无 | |
| 根据第一个维度连接输入Tensor。 | 
 | 无 | |
| 计算二进制数中1的个数。 | 
 | 无 | |
| 沿着Tensor的第一个维度进行随机打乱操作。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 返回输入Tensor的秩。 | 
 | 无 | |
| 对Tensor沿着指定维度 dim 进行重新规范化,要求每个子Tensor的 p 范数不超过 maxnorm 。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 对输入序列进行部分反转。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 将Tensor input_x 的每个元素右移 Tensor input_y 中对应位数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更多详情请查看:  | 
 | 无 | |
| 将稀疏除法应用于张量中的单个值或切片。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 对张量中的单个值或切片应用稀疏最大值。 | 
 | 无 | |
| 对张量中的单个值或切片应用稀疏最小值。 | 
 | 无 | |
| 对张量中的单个值或切片应用稀疏乘法。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 返回位置索引,根据这个索引将 values 插入 sorted_sequence 后,sorted_sequence 的元素大小顺序保持不变。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更多详情请查看:  | 
 | 无 | |
| 返回输入Tensor的shape。 | 
 | 无 | |
| 返回一个Scalar,类型为整数,表示输入Tensor的大小,即Tensor中元素的总数。 | 
 | 无 | |
| 根据指定shape对输入Tensor进行切片。 | 
 | 无 | |
| 根据指定的轴对输入Tensor的元素进行排序,默认为升序排序。 | 
 | 目前仅支持float16、uint8、int8、int16、int32、int64数据类型。如果使用float32类型可能导致数据精度损失。 | |
| 将空间维度划分为对应大小的块,并在批次维度重排张量。 | 
 | 无 | |
| 将空间维度分块,增加Tensor深度。 | 
 | 无 | |
| 基于指定的索引和axis返回输入Tensor的切片。 | 
 | 无 | |
| 根据指定的轴和分割数量对输入Tensor进行分割。 | 
 | 无 | |
| 返回删除指定 axis 中大小为1的维度后的Tensor。 | 
 | 无 | |
| 在指定轴上对输入Tensor序列进行堆叠。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 根据指定的更新值 updates 和输入索引 indices ,使用加法运算更新输入Tensor的值。 | 
 | 无 | |
| 根据指定的更新值 updates 和输入索引 indices ,进行除法运算更新输入Tensor的值。 | 
 | 无 | |
| 根据指定的更新值 updates 和输入索引 indices ,通过最大值运算将结果赋值到输出Tensor中。 | 
 | 无 | |
| 根据指定的更新值 updates 和输入索引 indices ,计算原值与更新值的较小值并更新原值,返回更新后的Tensor。 | 
 | 无 | |
| 根据指定的更新值 updates 和输入索引 indices ,使用乘法运算更新输入Tensor的值。 | 
 | 无 | |
| 根据指定的更新值 input_x 和输入索引 indices,进行减法运算更新输出Tensor的值。 | 
 | 无 | |
| 根据指定的更新值 update 和输入索引 indices ,通过更新操作更新输出Tensor的值。 | 
 | 无 | |
| 返回输入Tensor的Shape。 | 
 | 无 | |
| 按照给定的次数复制输入Tensor。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 计算 row * col 行列矩阵的下三角元素的索引,并将它们作为一个 2xN 的Tensor返回。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 更多详情请查看:  | 
 | 无 | |
| 计算 row * col 行列矩阵的上三角元素的索引,并将它们作为一个 2xN 的Tensor返回。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 返回输入Tensor的唯一元素以及其对应的每个值的索引。 | 
 | 无 | |
| 对输入张量中连续且重复的元素去重。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 对输入一维张量中元素去重,返回一维张量中的唯一元素(使用pad_num填充)和相对索引。 | 
 | 无 | |
| 沿分段计算输入Tensor的最大值。 | 
 | 无 | |
| 沿分段计算输入Tensor的最小值。 | 
 | 无 | |
| 沿分段计算输入Tensor元素的乘积。 | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 根据指定轴对输入矩阵进行分解,与Stack函数操作相反。 | 
 | 无 | 
类型转换
| 接口名 | 概述 | 支持平台 | 警告 | 
| ops.ScalarCast 从2.3版本开始已被弃用,并将在未来版本中被移除,建议使用 int(x) 或 float(x) 代替。 | Deprecated | 无 | |
| 将Scalar转换为指定数据类型的 Tensor 。 | 
 | 无 | |
| 将tuple转换为Tensor。 | 
 | 无 | 
Parameter操作算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 更多详情请查看:  | 
 | 无 | |
| 更多详情请查看:  | 
 | 无 | |
| 从网络参数减去特定数值来更新网络参数。 | 
 | 无 | |
| 根据指定更新值和输入索引通过加法运算更新输入数据的值。 | 
 | 无 | |
| 通过除法操作更新输入张量的值。 | 
 | 无 | |
| 通过最大操作更新输入张量的值。 | 
 | 无 | |
| 通过最小操作更新输入张量的值。 | 
 | 无 | |
| 根据指定更新值和输入索引通过乘法运算更新输入数据的值。 | 
 | 无 | |
| 使用给定值通过加法运算和输入索引更新Tensor值。 | 
 | 无 | |
| 使用给定值通过减法运算和输入索引更新Tensor值。 | 
 | 无 | |
| 使用给定值以及输入索引更新输入数据的值。 | 
 | 无 | |
| ScatterNonAliasingAdd接口已废弃,请使用接口  | Deprecated | 无 | |
| 使用给定更新值通过减法操作和输入索引来更新Tensor值。 | 
 | 无 | |
| 使用给定的更新值和输入索引更新输入Tensor的值。 | 
 | 无 | 
数据操作算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 返回数据集队列中的下一个元素。 | 
 | 无 | 
通信算子
在分布式训练中进行数据传输涉及通信操作,详情请参考 分布式集合通信原语 。
注意,以下列表中的接口需要先配置好通信环境变量。
针对Ascend设备,用户需要准备rank表,设置rank_id和device_id,详见 rank table启动 。
针对GPU设备,用户需要准备host文件和mpi,详见 mpirun启动 。
针对CPU设备,用户需要编写动态组网启动脚本,详见 动态组网启动 。
| 接口名 | 概述 | 支持平台 | 警告 | 
| 在指定的通信组中汇聚Tensor。 | 
 | 无 | |
| 使用指定方式对通信组内的所有设备的Tensor数据进行规约操作,所有设备都得到相同的结果。 | 
 | 无 | |
| AlltoAll是一个集合通信函数。 | 
 | 无 | |
| 对输入数据整组广播。 | 
 | 无 | |
| NeighborExchangeV2是一个集合通讯操作。 | 
 | 无 | |
| 规约张量的操作选项。 | 
 | 无 | |
| 规约并且分发指定通信组中的张量。 | 
 | 无 | 
调试算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 计算Tensor的直方图并保存到Summary文件。 | 
 | 无 | |
| 将图像保存到Summary文件。 | 
 | 无 | |
| 将标量数据保存到Summary文件。 | 
 | 无 | |
| 将Tensor保存到Summary文件。 | 
 | 无 | |
| 将Tensor保存为numpy格式的npy文件。 | 
 | 如果在短时间内保存大量数据,可能会导致设备端内存溢出。可以考虑对数据进行切片,以减小数据规模。 由于数据保存是异步处理的,当数据量过大或主进程退出过快时,可能出现数据丢失的问题,需要主动控制主进程销毁时间,例如使用sleep。 | |
| 将输入数据进行打印输出。 | 
 | 无 | |
| 分配一个标志来存储溢出状态。 | 
 | 无 | |
| 清除存储溢出状态的标识。 | 
 | 无 | |
| 在执行  | 
 | 无 | 
稀疏算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 稀疏矩阵 A 乘以稠密矩阵 B 。 | 
 | 无 | |
| 将稀疏Tensor转换为密集Tensor。 | 
 | 无 | 
框架算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 用来处理操作间的依赖关系。 | 
 | 无 | |
| 一个高阶函数,为输入函数生成梯度函数。 | 
 | 无 | |
| 用来导出中间变量中的梯度。 | 
 | 无 | |
| 对输入序列做集合运算。 | 
 | 无 | |
| 为图节点附加回调函数,将在梯度计算时被调用。 | 
 | 无 | |
| Map将对输入序列应用设置的函数操作。 | 
 | 无 | |
| MultitypeFuncGraph是一个用于生成重载函数的类,使用不同类型作为输入。 | 
 | 无 | |
| 生成偏函数的实例。 | 
 | 无 | 
算子信息注册
| AiCPU算子信息注册类。 | |
| 用于为  | |
| Ascend算子的dtype和format的多种组合。 | |
| 注册TBE算子信息的类。 | |
| 通过Primitive对象或Primitive名称,获取虚拟实现函数。 | 
自定义算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| Custom 算子是MindSpore自定义算子的统一接口。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 装饰器,用于将注册信息绑定到:  | 
 | 无 | |
| 用于MindSpore Hybrid DSL函数书写的装饰器。 | 
 | 无 | 
光谱算子
| 接口名 | 概述 | 支持平台 | 警告 | 
| 巴特利特窗口函数。 | 
 | 这是一个实验性API,后续可能修改或删除。 | |
| 布莱克曼窗口函数。 | 
 | 这是一个实验性API,后续可能修改或删除。 |