mindspore.nn
神经网络Cell。
用于构建神经网络中的预定义构建块或计算单元。
MindSpore中 mindspore.nn 接口与上一版本相比,新增、删除和支持平台的变化信息请参考 API Updates 。
基本构成单元
接口名 |
概述 |
支持平台 |
MindSpore中神经网络的基本构成单元。 |
|
|
运行从MindIR加载的计算图。 |
|
|
损失函数的基类。 |
|
|
用于参数更新的优化器基类。 |
|
容器
接口名 |
概述 |
支持平台 |
构造Cell列表。 |
|
|
构造Cell顺序容器。 |
|
封装层
接口名 |
概述 |
支持平台 |
分布式优化器。 |
|
|
用于动态更新损失缩放系数(loss scale)的神经元。 |
|
|
固定损失缩放系数的神经元。 |
|
|
训练网络的封装。 |
|
|
用于获取下一条数据的Cell。 |
|
|
Wrap the network with Batch Size. |
|
|
更新参数的Cell。 |
|
|
将MiniBatch切分成更细粒度的MicroBatch,用于流水线并行的训练中。 |
|
|
时间序列封装层。 |
|
|
训练网络封装类。 |
|
|
使用混合精度功能的训练网络。 |
|
|
封装前向网络和损失函数。 |
|
|
Cell that returns the gradients. |
|
|
包含损失函数的Cell。 |
|
卷积神经网络层
接口名 |
概述 |
支持平台 |
一维卷积层。 |
|
|
一维转置卷积层。 |
|
|
二维卷积层。 |
|
|
二维转置卷积层。 |
|
|
三维卷积层。 |
|
|
三维转置卷积层。 |
|
|
从图像中提取滑窗的区域块。 |
|
循环神经网络层
接口名 |
概述 |
支持平台 |
循环神经网络(RNN)层,其使用的激活函数为tanh或relu。 |
|
|
循环神经网络单元,激活函数是tanh或relu。 |
|
|
GRU(Gate Recurrent Unit)称为门控循环单元网络,是循环神经网络(Recurrent Neural Network, RNN)的一种。 |
|
|
GRU(Gate Recurrent Unit)称为门控循环单元。 |
|
|
长短期记忆(LSTM)网络,根据输出序列和给定的初始状态计算输出序列和最终状态。 |
|
|
长短期记忆网络单元(LSTMCell)。 |
|
嵌入层
接口名 |
概述 |
支持平台 |
嵌入层。 |
|
|
嵌入查找层。 |
|
|
根据指定的索引和字段ID,返回输入Tensor的切片。 |
|
非线性激活函数层
接口名 |
概述 |
支持平台 |
Continuously differentiable exponential linear units activation function. |
|
|
指数线性单元激活函数(Exponential Linear Unit activation function)。 |
|
|
快速高斯误差线性单元激活函数(Fast Gaussian Error Linear Units activation function)。 |
|
|
高斯误差线性单元激活函数(Gaussian error linear unit activation function)。 |
|
|
获取激活函数。 |
|
|
Hardtanh激活函数。 |
|
|
Hard Shrink激活函数。 |
|
|
Hard Sigmoid激活函数。 |
|
|
Hard Swish激活函数。 |
|
|
Leaky ReLU激活函数。 |
|
|
Log Sigmoid激活函数。 |
|
|
Log Softmax激活函数。 |
|
|
局部响应归一化操作LRN(Local Response Normalization)。 |
|
|
逐元素计算输入Tensor的MISH(Self Regularized Non-Monotonic Neural Activation Function 自正则化非单调神经激活函数)。 |
|
|
Softsign激活函数。 |
|
|
PReLU激活层(PReLU Activation Operator)。 |
|
|
修正线性单元激活函数(Rectified Linear Unit activation function)。 |
|
|
ReLU6激活函数。 |
|
|
Randomized Leaky ReLU激活函数。 |
|
|
激活函数selu(Scaled exponential Linear Unit)。 |
|
|
SiLU激活函数。 |
|
|
Sigmoid激活函数。 |
|
|
Softmin函数,它是二分类函数 |
|
|
Softmax函数,它是二分类函数 |
|
|
SoftShrink激活函数。 |
|
|
Tanh激活函数。 |
|
|
Tanhshrink激活函数。 |
|
|
Threshold激活函数,按元素计算输出。 |
|
线性层
接口名 |
概述 |
支持平台 |
全连接层。 |
|
|
双线性全连接层。 |
|
Dropout层
接口名 |
概述 |
支持平台 |
随机丢弃层。 |
|
|
在训练期间,以服从伯努利分布的概率 p 随机将输入Tensor的某些通道归零(对于格式为 NCHW 的四维Tensor,其通道特征图指的是后两维 HW 格式的二维特征图)。 |
|
|
在训练期间,以服从伯努利分布的概率 p 随机将输入Tensor的某些通道归零(对于形状为 NCDHW 的 5D Tensor,其通道特征图指的是后三维 DHW 形状的三维特征图)。 |
|
归一化层
接口名 |
概述 |
支持平台 |
对输入的二维数据进行批归一化(Batch Normalization Layer)。 |
|
|
对输入的四维数据进行批归一化(Batch Normalization Layer)。 |
|
|
对输入的五维数据进行批归一化(Batch Normalization Layer)。 |
|
|
在mini-batch输入上进行组归一化。 |
|
|
对三维输入实现实例归一化(Instance Normalization Layer)。 |
|
|
对四维输入实现实例归一化(Instance Normalization Layer)。 |
|
|
对五维输入实现实例归一化(Instance Normalization Layer)。 |
|
|
在mini-batch输入上应用层归一化(Layer Normalization)。 |
|
|
在N维输入上进行跨设备同步批归一化(Batch Normalization,BN)。 |
|
池化层
接口名 |
概述 |
支持平台 |
对输入的多维数据进行一维平面上的自适应平均池化运算。 |
|
|
二维自适应平均池化。 |
|
|
三维自适应平均池化。 |
|
|
对输入的多维数据进行一维平面上的自适应最大池化运算。 |
|
|
二维自适应最大池化运算。 |
|
|
对输入的多维数据进行一维平面上的平均池化运算。 |
|
|
对输入的多维数据进行二维的平均池化运算。 |
|
|
对时间数据进行最大池化运算。 |
|
|
对输入的多维数据进行二维的最大池化运算。 |
|
填充层
接口名 |
概述 |
支持平台 |
根据 paddings 和 mode 对输入进行填充。 |
|
|
将给定的常量填充到多维输入数据的最后一维。 |
|
|
将给定的常量填充到多维输入数据的最后两维。 |
|
|
将给定的常量填充到多维输入数据的最后三维。 |
|
|
根据 padding 对输入 x 进行填充。 |
|
|
根据 padding 对输入 x 进行填充。 |
|
|
将零填充到多维输入数据的最后两维。 |
|
损失函数
接口名 |
概述 |
支持平台 |
计算目标值和预测值之间的二值交叉熵损失值。 |
|
|
输入经过sigmoid激活函数后作为预测值,BCEWithLogitsLoss 计算预测值和目标值之间的二值交叉熵损失。 |
|
|
余弦相似度损失函数,用于测量两个Tensor之间的相似性。 |
|
|
计算预测值和目标值之间的交叉熵损失。 |
|
|
Dice系数是一个集合相似性loss,用于计算两个样本之间的相似性。 |
|
|
FocalLoss函数解决了类别不平衡的问题。 |
|
|
HuberLoss计算预测值和目标值之间的误差。 |
|
|
L1Loss用于计算预测值和目标值之间的平均绝对误差。 |
|
|
用于计算预测值与标签值之间的均方误差。 |
|
|
对于多标签问题,可以将标签通过one-hot编码转换为多个二分类标签。 |
|
|
计算预测值和目标值之间的负对数似然损失。 |
|
|
RMSELoss用来测量 \(x\) 和 \(y\) 元素之间的均方根误差,其中 \(x\) 是输入Tensor, \(y\) 是目标值。 |
|
|
抽样交叉熵损失函数。 |
|
|
SmoothL1损失函数,如果预测值和目标值的逐个元素绝对误差小于设定阈值 beta 则用平方项,否则用绝对误差项。 |
|
|
针对二分类问题的损失函数。 |
|
|
计算预测值与真实值之间的交叉熵。 |
|
优化器
接口名 |
概述 |
支持平台 |
Adadelta算法的实现。 |
|
|
Adagrad算法的实现。 |
|
|
Adaptive Moment Estimation (Adam)算法的实现。 |
|
|
AdaMax算法是基于无穷范数的Adam的一种变体。 |
|
|
此优化器在主机CPU上运行Adam优化算法,设备上仅执行网络参数的更新,最大限度地降低内存成本。 |
|
|
权重衰减Adam算法的实现。 |
|
|
Adaptive Summation (AdaSum)算法的实现,根据更新前后的参数差计算。 |
|
|
Adaptive Summation (AdaSum)算法的实现,根据梯度计算。 |
|
|
Implements Average Stochastic Gradient Descent. |
|
|
FTRL算法实现。 |
|
|
LAMB(Layer-wise Adaptive Moments optimizer for Batching training,用于批训练的分层自适应矩优化器)算法的实现。 |
|
|
LARS算法的实现。 |
|
|
Adaptive Moment Estimation (Adam)算法的实现。 |
|
|
Momentum算法的实现。 |
|
|
ProximalAdagrad算法的实现。 |
|
|
均方根传播(RMSProp)算法的实现。 |
|
|
Implements Resilient backpropagation. |
|
|
随机梯度下降的实现。 |
|
|
通过二阶算法THOR更新参数。 |
|
评价指标
接口名 |
概述 |
支持平台 |
计算数据分类的正确率,包括二分类和多分类。 |
|
|
使用梯形法则计算曲线下面积AUC(Area Under the Curve,AUC)。 |
|
|
计算BLEU分数。 |
|
|
计算混淆矩阵(confusion matrix),通常用于评估分类模型的性能,包括二分类和多分类场景。 |
|
|
计算与混淆矩阵相关的度量。 |
|
|
计算余弦相似度。 |
|
|
集合相似性度量。 |
|
|
计算F1 score。 |
|
|
计算Fbeta评分。 |
|
|
计算Hausdorff距离。 |
|
|
根据输入的 name 获取metric的方法。 |
|
|
计算loss的平均值。 |
|
|
计算平均绝对误差MAE(Mean Absolute Error)。 |
|
|
计算从 y_pred 到 y 的平均表面距离。 |
|
|
用于计算评估指标的基类。 |
|
|
测量均方差MSE(Mean Squared Error)。 |
|
|
获取所有metric的名称。 |
|
|
用于计算神经网络对给定图像的遮挡灵敏度(Occlusion Sensitivity),表示了图像的哪些部分对神经网络的分类决策最重要。 |
|
|
计算困惑度(perplexity)。 |
|
|
计算数据分类的精度,包括单标签场景和多标签场景。 |
|
|
计算数据分类的召回率,包括单标签场景和多标签场景。 |
|
|
计算ROC曲线。 |
|
|
计算从 y_pred 到 y 的均方根表面距离。 |
|
|
此装饰器用于根据类的 indexes 属性对输入重新排列。 |
|
|
计算top-1分类正确率。 |
|
|
计算top-5分类正确率。 |
|
|
计算top-k分类正确率。 |
|
动态学习率
LearningRateSchedule类
本模块中的动态学习率都是LearningRateSchedule的子类,将LearningRateSchedule的实例传递给优化器。在训练过程中,优化器以当前step为输入调用该实例,得到当前的学习率。
import mindspore.nn as nn
min_lr = 0.01
max_lr = 0.1
decay_steps = 4
cosine_decay_lr = nn.CosineDecayLR(min_lr, max_lr, decay_steps)
net = Net()
optim = nn.Momentum(net.trainable_params(), learning_rate=cosine_decay_lr, momentum=0.9)
接口名 |
概述 |
支持平台 |
基于余弦衰减函数计算学习率。 |
|
|
基于指数衰减函数计算学习率。 |
|
|
基于逆时衰减函数计算学习率。 |
|
|
基于自然指数衰减函数计算学习率。 |
|
|
基于多项式衰减函数计算学习率。 |
|
|
预热学习率。 |
|
Dynamic LR函数
本模块中的动态学习率都是function,调用function并将结果传递给优化器。在训练过程中,优化器将result[current step]作为当前学习率。
import mindspore.nn as nn
min_lr = 0.01
max_lr = 0.1
total_step = 6
step_per_epoch = 1
decay_epoch = 4
lr= nn.cosine_decay_lr(min_lr, max_lr, total_step, step_per_epoch, decay_epoch)
net = Net()
optim = nn.Momentum(net.trainable_params(), learning_rate=lr, momentum=0.9)
接口名 |
概述 |
支持平台 |
基于余弦衰减函数计算学习率。 |
|
|
基于指数衰减函数计算学习率。 |
|
|
基于逆时衰减函数计算学习率。 |
|
|
基于自然指数衰减函数计算学习率。 |
|
|
获取分段常量学习率。 |
|
|
基于多项式衰减函数计算学习率。 |
|
|
预热学习率。 |
|
图像处理层
接口名 |
概述 |
支持平台 |
根据指定比例裁剪出图像的中心区域。 |
|
|
计算每个颜色通道的图像渐变,返回为两个Tensor,分别表示高和宽方向上的变化率。 |
|
|
多尺度计算两个图像之间的结构相似性(SSIM)。 |
|
|
在批处理中计算两个图像的峰值信噪比(PSNR)。 |
|
|
使用双线性插值调整输入Tensor为指定的大小。 |
|
|
计算两个图像之间的结构相似性(SSIM)。 |
|
矩阵处理
接口名 |
概述 |
支持平台 |
根据对角线值返回一批对角矩阵。 |
|
|
返回批对角矩阵的对角线部分。 |
|
|
将输入的对角矩阵的对角线值置换为输入的对角线值。 |
|
工具
接口名 |
概述 |
支持平台 |
对输入Tensor的值进行裁剪,使用 \(L_2\) 范数控制梯度。 |
|
|
对输入Tensor的第0维之外的维度进行展平操作。 |
|
|
对权重计算L1正则化。 |
|
|
计算向量的范数,目前包括欧几里得范数,即 \(L_2\)-norm。 |
|
|
对输入进行one-hot编码并返回。 |
|
|
根据指定步长在范围[start, limit)中创建数字序列。 |
|
|
沿轴移动Tensor的元素。 |
|
|
返回一个Tensor,指定主对角线以上的元素被置为零。 |
|
|
返回一个Tensor,指定主对角线以下的元素被置为0。 |
|
数学运算
接口名 |
概述 |
支持平台 |
沿指定轴 axis 计算输入 x 的均值和方差。 |
|