paddle.nn
paddle.nn 目录下包含飞桨框架支持的神经网络层和相关函数的相关 API。具体如下:
容器相关
| API 名称 | API 功能 | 
|---|---|
|  | 基于 OOD 实现的动态图 Layer | 
|  | 用于保存子层列表 | 
|  | 参数列表容器 | 
|  | 参数字典容器 | 
|  | 顺序容器;子 Layer 将按构造函数参数的顺序添加到此容器中 | 
|  | 保存子层到有序字典中,它包含的子层将被正确地注册和添加 | 
卷积层
| API 名称 | API 功能 | 
|---|---|
|  | 一维卷积层 | 
|  | 一维转置卷积层 | 
|  | 二维卷积层 | 
|  | 二维转置卷积层 | 
|  | 三维卷积层 | 
|  | 三维转置卷积层 | 
pooling 层
| API 名称 | API 功能 | 
|---|---|
|  | 一维自适应平均池化层 | 
|  | 二维自适应平均池化层 | 
|  | 三维自适应平均池化层 | 
|  | 一维自适应最大池化层 | 
|  | 二维自适应最大池化层 | 
|  | 三维自适应最大池化层 | 
|  | 一维平均池化层 | 
|  | 二维平均池化层 | 
|  | 三维平均池化层 | 
|  | 一维最大池化层 | 
|  | 二维最大池化层 | 
|  | 三维最大池化层 | 
|  | 一维最大反池化层 | 
|  | 二维最大反池化层 | 
|  | 三维最大反池化层 | 
|  | 二维分数阶最大值池化层 | 
|  | 三维分数阶最大值池化层 | 
|  | 一维幂平均池化层 | 
|  | 二维幂平均池化层 | 
Padding 层
| API 名称 | API 功能 | 
|---|---|
|  | 一维填充层 | 
|  | 二维填充层 | 
|  | 三维填充层 | 
|  | 一维零填充层 | 
|  | 二维零填充层 | 
|  | 三维零填充层 | 
激活层
| API 名称 | API 功能 | 
|---|---|
|  | CELU 激活层 | 
|  | ELU 激活层 | 
|  | GELU 激活层 | 
|  | GLU 激活层 | 
|  | Hardshrink 激活层 | 
|  | Hardsigmoid 激活层 | 
|  | Hardswish 激活层 | 
|  | Hardtanh 激活层 | 
|  | LeakyReLU 激活层 | 
|  | LogSigmoid 激活层 | 
|  | LogSoftmax 激活层 | 
|  | Maxout 激活层 | 
|  | PReLU 激活层 | 
|  | RReLU 激活层 | 
|  | ReLU 激活层 | 
|  | ReLU6 激活层 | 
|  | SELU 激活层 | 
|  | Sigmoid 激活层 | 
|  | Silu 激活层 | 
|  | Softmax 激活层 | 
|  | Softmax2D 激活层 | 
|  | Softplus 激活层 | 
|  | Softshrink 激活层 | 
|  | Softsign 激活层 | 
|  | Swish 激活层 | 
|  | Mish 激活层 | 
|  | Tanh 激活层 | 
|  | Tanhshrink 激活层 | 
|  | Thresholded ReLU 激活层 | 
Normalization 层
| API 名称 | API 功能 | 
|---|---|
|  | Batch Normalization 层 | 
|  | 一维 Batch Normalization 层 | 
|  | 二维 Batch Normalization 层 | 
|  | 三维 Batch Normalization 层 | 
|  | Group Normalization 层 | 
|  | 一维 Instance Normalization 层 | 
|  | 二维 Instance Normalization 层 | 
|  | 三维 Instance Normalization 层 | 
|  | 用于保存 Normalization 层列表 | 
|  | Local Response Normalization 层 | 
|  | Spectral Normalization 层 | 
|  | Synchronized Batch Normalization 层 | 
循环神经网络层
| API 名称 | API 功能 | 
|---|---|
|  | 双向循环神经网络 | 
|  | 门控循环单元网络 | 
|  | 门控循环单元 | 
|  | 长短期记忆网络 | 
|  | 长短期记忆网络单元 | 
|  | 循环神经网络 | 
|  | 循环神经网络单元基类 | 
|  | 简单循环神经网络 | 
|  | 简单循环神经网络单元 | 
Transformer 相关
| API 名称 | API 功能 | 
|---|---|
|  | 多头注意力机制 | 
|  | 点乘注意力机制,并在此基础上加入了对注意力权重的缩放 | 
|  | 稀疏版本的 Attention API,对 Transformer 模块中的 Attention 矩阵进行了稀疏化,从而减少内存消耗和计算量 | 
|  | Transformer 模型 | 
|  | Transformer 解码器 | 
|  | Transformer 解码器层 | 
|  | Transformer 编码器 | 
|  | Transformer 编码器层 | 
线性层
| API 名称 | API 功能 | 
|---|---|
|  | 对两个输入执行双线性 Tensor 积 | 
|  | 线性变换层 | 
Dropout 层
| API 名称 | API 功能 | 
|---|---|
|  | 具有自归一化性质的 dropout | 
|  | 具有自归一化性质的 dropout ,屏蔽整个通道 | 
|  | Dropout | 
|  | 一维 Dropout | 
|  | 二维 Dropout | 
Embedding 层
| API 名称 | API 功能 | 
|---|---|
|  | 嵌入层(Embedding Layer) | 
Loss 层
| API 名称 | API 功能 | 
|---|---|
|  | BCELoss 层 | 
|  | BCEWithLogitsLoss 层 | 
|  | CosineEmbeddingLoss 层 | 
|  | 交叉熵损失层 | 
|  | CTCLoss 层 | 
|  | 层次 sigmoid 损失层 | 
|  | HingeEmbeddingLoss 损失层 | 
|  | Kullback-Leibler 散度损失层 | 
|  | L1 损失层 | 
|  | MarginRankingLoss 层 | 
|  | 均方差误差损失层 | 
|  | NLLLoss 层 | 
|  | GaussianNLLLoss 层 | 
|  | PoissonNLLLoss 层 | 
|  | RNNTLoss 层 | 
|  | 平滑 L1 损失层 | 
|  | SoftMarginLoss 层 | 
|  | TripletMarginLoss 层 | 
|  | TripletMarginWithDistanceLoss 层 | 
|  | 多标签 Hinge 损失层 | 
|  | MultiMarginLoss 层 | 
|  | MultiLabelMarginLoss 层 | 
|  | 自适应 logsoftmax 损失类 | 
Vision 层
| API 名称 | API 功能 | 
|---|---|
|  | 将一个形为[N, C, H, W]或是[N, H, W, C]的 Tensor 按通道分成 g 组,得到形为[N, g, C/g, H, W]或[N, H, W, g, C/g]的 Tensor,然后转置为[N, C/g, g, H, W]或[N, H, W, C/g, g]的形状,最后重新排列为原来的形状 | 
|  | 将一个形为[N, C, H, W]或是[N, H, W, C]的 Tensor 重新排列成形为 [N, C/r**2, H*r, W*r]或 [N, H*r, W*r, C/r**2] 的 Tensor | 
|  | PixelShuffle 的逆操作,将一个形为[N, C, H, W]或是[N, H, W, C]的 Tensor 重新排列成形为 [N, C*r*r, H/r, W/r] 或 [N, H/r, W/r, C*r*r] 的 Tensor | 
|  | 用于调整一个 batch 中图片的大小 | 
|  | 用于调整一个 batch 中图片的大小(使用双线性插值方法) | 
|  | 用于调整一个 batch 中图片的大小(使用最近邻插值方法) | 
Clip 相关
| API 名称 | API 功能 | 
|---|---|
|  | 将一个 Tensor 列表 t_list 中所有 Tensor 的 L2 范数之和,限定在 clip_norm 范围内 | 
|  | 将输入的多维 Tensor X 的 L2 范数限制在 clip_norm 范围之内 | 
|  | 将输入的多维 Tensor X 的值限制在 [min, max] 范围 | 
公共层
| API 名称 | API 功能 | 
|---|---|
|  | 带 beam search 解码策略的解码器 | 
|  | 余弦相似度计算 | 
|  | 循环解码 | 
|  | 将一个连续维度的 Tensor 展平成一维 Tensor | 
|  | 计算两组向量两两之间的距离 | 
|  | 建立等效层,作为输入的 Placeholder | 
|  | 实现的功能与卷积中用到的 im2col 函数一样,通常也被称作为 im2col 过程 | 
|  | 该 Op 用于将一个滑动局部块组合成一个大的 Tensor,通常也被称为 col2im 过程 | 
|  | 将输入 Tensor 沿指定轴 axis 上的维度展成 shape 形状 | 
卷积相关函数
| API 名称 | API 功能 | 
|---|---|
|  | 一维卷积函数 | 
|  | 一维转置卷积函数 | 
|  | 二维卷积函数 | 
|  | 二维转置卷积函数 | 
|  | 三维卷积函数 | 
|  | 三维转置卷积函数 | 
Pooling 相关函数
| API 名称 | API 功能 | 
|---|---|
|  | 一维自适应平均池化 | 
|  | 二维自适应平均池化 | 
|  | 三维自适应平均池化 | 
|  | 一维自适应最大池化 | 
|  | 二维自适应最大池化 | 
|  | 三维自适应最大池化 | 
|  | 一维平均池化 | 
|  | 二维平均池化 | 
|  | 三维平均池化 | 
|  | 一维最大池化 | 
|  | 二维最大池化 | 
|  | 三维最大池化 | 
|  | 一维最大反池化层 | 
|  | 二维最大反池化层 | 
|  | 三维最大反池化层 | 
|  | 二维分数阶最大值池化 | 
|  | 三维分数阶最大值池化 | 
|  | 一维平均幂池化 | 
|  | 二维平均幂池化 | 
Padding 相关函数
| API 名称 | API 功能 | 
|---|---|
|  | 依照 pad 和 mode 属性对 input 进行填充 | 
|  | 依照 pad 对 x 进行零填充 | 
激活函数
| API 名称 | API 功能 | 
|---|---|
|  | celu 激活函数 | 
|  | elu 激活函数 | 
|  | Inplace 版本的 elu API,对输入 x 采用 Inplace 策略 | 
|  | gelu 激活函数 | 
|  | gumbel_softmax 采样激活函数 | 
|  | hardshrink 激活函数 | 
|  | sigmoid 的分段线性逼近激活函数 | 
|  | hardswish 激活函数 | 
|  | hardtanh 激活函数 | 
|  | Inplace 版本的 hardtanh API,对输入 x 采用 Inplace 策略 | 
|  | leaky_relu 激活函数 | 
|  | Inplace 版本的 leaky_relu API,对输入 x 采用 Inplace 策略 | 
|  | log_sigmoid 激活函数 | 
|  | log_softmax 激活函数 | 
|  | maxout 激活函数 | 
|  | prelu 激活函数 | 
|  | rrelu 激活函数 | 
|  | relu 激活函数 | 
|  | Inplace 版本的 relu API,对输入 x 采用 Inplace 策略 | 
|  | relu6 激活函数 | 
|  | selu 激活函数 | 
|  | sigmoid 激活函数 | 
|  | silu 激活函数 | 
|  | softmax 激活函数 | 
|  | Inplace 版本的 softmax API,对输入 x 采用 Inplace 策略 | 
|  | softplus 激活函数 | 
|  | softshrink 激活函数 | 
|  | softsign 激活函数 | 
|  | swish 激活函数 | 
|  | mish 激活函数 | 
|  | tanhshrink 激活函数 | 
|  | thresholded_relu 激活函数 | 
|  | Inplace 版本的 thresholded_relu API,对输入 x 采用 Inplace 策略 | 
Normalization 方法
| API 名称 | API 功能 | 
|---|---|
|  | Local Response Normalization 函数 | 
|  | 归一化方法 | 
|  | 移除传入 layer 中的权重归一化 | 
|  | 对传入的 layer 中的权重参数进行归一化 | 
|  | 对传入的 layer 中的权重参数进行谱归一化 | 
|  | Group Normalization 函数 | 
线性处理相关函数
| API 名称 | API 功能 | 
|---|---|
|  | 对两个输入执行双线性 Tensor 积 | 
|  | 线性变换 | 
Dropout 方法
| API 名称 | API 功能 | 
|---|---|
|  | 一种具有自归一化性质的 dropout | 
|  | 一种具有自归一化性质的 dropout ,屏蔽整个通道 | 
|  | Dropout | 
|  | 一维 Dropout | 
|  | 二维 Dropout | 
|  | 三维 Dropout | 
Embedding 相关函数
| API 名称 | API 功能 | 
|---|---|
| 
 | 对角线 Embedding 方法,paddle.nn.functional.diag_embed 已废弃,请使用 paddle.diag_embed | 
|  | Embedding 方法 | 
损失函数
| API 名称 | API 功能 | 
|---|---|
|  | 二值交叉熵损失值 | 
|  | logits 二值交叉熵损失值 | 
|  | 用于计算余弦相似度损失 | 
|  | 用于计算 ctc 损失 | 
|  | 用于比较预测结果跟标签之间的相似度 | 
|  | 层次 sigmoid 损失函数 | 
|  | 用于计算 L1 损失 | 
|  | 用于计算泊松分布的负对数似然损失 | 
|  | 用于计算 KL 散度损失 | 
|  | 用于计算负对数损失 | 
|  | 用于计算 margin rank loss 损失 | 
|  | 用于计算均方差误差 | 
|  | 用于计算 nll 损失 | 
|  | 用于计算 gaussiannll 损失 | 
|  | 成对数据损失计算 | 
|  | 用于计算分类任务中前景类-背景类数量不均衡问题的损失 | 
|  | 用于计算平滑 L1 损失 | 
|  | 将 softmax 操作、交叉熵损失函数的计算过程进行合并 | 
|  | 支持  | 
|  | 用于计算 soft margin loss 损失函数 | 
|  | 用于计算 TripletMarginLoss | 
|  | 用户自定义距离函数用于计算 triplet margin loss 损失 | 
|  | 用于计算多分类的 hinge loss 损失函数 | 
|  | 计算输入 input 和标签 label(包含 1 和 -1) 间的 hinge embedding loss 损失 | 
|  | 计算 RNNT loss,也可以叫做 softmax with RNNT | 
|  | 用于计算 multi margin loss 损失函数 | 
|  | 用于计算 multi label margin loss 损失函数 | 
|  | 自适应 logsoftmax 损失函数 | 
公用方法
| API 名称 | API 功能 | 
|---|---|
|  | 用于生成仿射变换前后的 feature maps 的坐标映射关系 | 
|  | 用于计算 x1 与 x2 沿 axis 维度的余弦相似度 | 
|  | 计算输入 input 和标签 label 间的交叉熵 | 
|  | 用于调整一个 batch 中图片的大小 | 
|  | 标签平滑 | 
|  | 将输入'x'中的每个 id 转换为一个 one-hot 向量 | 
|  | 将 Tensor 重新排列 | 
|  | 将 Tensor 重新排列,是 pixel_shuffle 的逆操作 | 
|  | 用于计算预测值和目标值的方差估计 | 
|  | 对每一个卷积核覆盖下的区域,将元素重新排成一列 | 
|  | 用于将一个滑动局部块组合成一个大的 Tensor,通常也被称为 col2im。 | 
|  | 整个束搜索结束后使用,获得每个时间步选择的的候选词 id 及其对应的在搜索树中的 parent 节点 | 
|  | 门控线性单元 | 
|  | 计算两组向量两两之间的距离 | 
|  | 用于调整一个 batch 中图片的大小 | 
|  | 根据输入 x 和 maxlen 输出一个掩码,数据类型为 dtype | 
|  | 用于对输入 X 做时序通道 T 上的位移操作,为 TSM 中使用的操作 | 
|  | 用于调整一个 batch 中图片的大小 | 
|  | 用于 PartialFC 类别中心采样 | 
|  | 将一个形为[N, C, H, W]或是[N, H, W, C]的 Tensor 按通道分成 g 组,得到形为[N, g, C/g, H, W]或[N, H, W, g, C/g]的 Tensor,然后转置为[N, C/g, g, H, W]或[N, H, W, C/g, g]的形状,最后重新排列为原来的形状 | 
|  | 用于创建可训练参数,作为模型的一部分参与梯度更新 | 
初始化相关
| API 名称 | API 功能 | 
|---|---|
|  | 使用 Numpy 数组、Python 列表、Tensor 来初始化参数 | 
|  | 该接口为参数初始化函数,用于转置卷积函数中 | 
|  | 用于权重初始化,通过输入的 value 值初始化输入变量 | 
|  | 函数式版本的 paddle.nn.initializer.Constant API | 
|  | 实现 Kaiming 正态分布方式的权重初始化 | 
|  | 函数式版本的 paddle.nn.initializer.KaimingNormal API | 
|  | 实现 Kaiming 均匀分布方式的权重初始化 | 
|  | 函数式版本的 paddle.nn.initializer.KaimingUniform API | 
|  | 随机正态(高斯)分布初始化函数 | 
|  | 函数式版本的 paddle.nn.initializer.Normal API | 
|  | 用于设置 Paddle 框架中全局的参数初始化方法 | 
|  | 获取某些激活函数的推荐增益值(增益值可用于对某些初始化 API 进行设置,以调整初始化值) | 
|  | 通过狄拉克 delta 函数来初始化 3D/4D/5D Tensor,一般用于卷积层,能最大程度保留卷积层输入的特性 | 
|  | 函数式版本的 paddle.nn.initializer.Dirac API | 
|  | 正交矩阵初始化方式,被初始化的参数为(半)正交的 | 
|  | 函数式版本的 paddle.nn.initializer.Orthogonal API | 
|  | 随机截断正态(高斯)分布初始化函数 | 
|  | 函数式版本的 paddle.nn.initializer.TruncatedNormal API | 
|  | 随机均匀分布初始化函数 | 
|  | 函数式版本的 paddle.nn.initializer.Uniform API | 
|  | 实现 Xavier 权重初始化方法( Xavier weight initializer) | 
|  | 函数式版本的 paddle.nn.initializer.XavierNormal API | 
|  | 实现 Xavier 权重初始化方法( Xavier weight initializer) | 
|  | 函数式版本的 paddle.nn.initializer.XavierUniform API | 
|  | 将二维输入张量的值设置为单位矩阵 | 
|  | 将输入张量的值设置为 1 | 
|  | 将输入张量的值设置为 0 | 
量化压缩
| API 名称 | API 功能 | 
|---|---|
|  | 使用 int8 量化压缩的线性层 | 
|  | 使用自定义的类型进行模型的量化压缩 | 
|  | weight_only 和 llm.int8 权重的量化函数 | 
工具相关
| API 名称 | API 功能 | 
|---|---|
|  | 对一组张量的梯度按范数进行裁剪 | 
|  | 对一组张量的梯度按值范围进行裁剪 | 
|  | 将参数列表转换成一个一维 Tensor | 
|  | 移除传入 layer 中的权重归一化 | 
|  | 对传入 layer 中的权重谱归一化 | 
|  | 将一个一维 Tensor 转换成参数列表 | 
|  | 对传入的 layer 中的权重参数进行归一化 |