torch.nn¶
这些是图的基本构建块
torch.nn
一种不应被视为模型参数的张量。 |
|
一种应被视为模块参数的张量。 |
|
未初始化的参数。 |
|
未初始化的缓冲区。 |
容器¶
所有神经网络模块的基类。 |
|
一个顺序容器。 |
|
在列表中保存子模块。 |
|
在字典中保存子模块。 |
|
在列表中保存参数。 |
|
在字典中保存参数。 |
模块的全局钩子
注册所有模块共有的前向预钩子。 |
|
为所有模块注册一个全局前向钩子。 |
|
注册所有模块共有的反向钩子。 |
|
注册所有模块共有的反向预钩子。 |
|
注册所有模块共有的反向钩子。 |
|
注册所有模块共有的缓冲区注册钩子。 |
|
注册所有模块共有的模块注册钩子。 |
|
注册所有模块共有的参数注册钩子。 |
卷积层¶
对由多个输入平面组成的输入信号应用一维卷积。 |
|
对由多个输入平面组成的输入信号应用二维卷积。 |
|
对由多个输入平面组成的输入信号应用三维卷积。 |
|
对由多个输入平面组成的输入图像应用一维转置卷积运算符。 |
|
对由多个输入平面组成的输入图像应用二维转置卷积运算符。 |
|
对由多个输入平面组成的输入图像应用三维转置卷积运算符。 |
|
一个 |
|
一个 |
|
一个 |
|
一个 |
|
一个 |
|
一个 |
|
从批处理输入张量中提取滑动局部块。 |
|
将滑动局部块数组组合成一个大型包含张量。 |
池化层¶
对由多个输入平面组成的输入信号应用一维最大池化。 |
|
对由多个输入平面组成的输入信号应用二维最大池化。 |
|
对由多个输入平面组成的输入信号应用三维最大池化。 |
|
计算 |
|
计算 |
|
计算 |
|
对由多个输入平面组成的输入信号应用一维平均池化。 |
|
对由多个输入平面组成的输入信号应用二维平均池化。 |
|
对由多个输入平面组成的输入信号应用三维平均池化。 |
|
对由多个输入平面组成的输入信号应用二维分数最大池化。 |
|
对由多个输入平面组成的输入信号应用三维分数最大池化。 |
|
对由多个输入平面组成的输入信号应用一维幂平均池化。 |
|
对由多个输入平面组成的输入信号应用二维幂平均池化。 |
|
对由多个输入平面组成的输入信号应用三维幂平均池化。 |
|
对由多个输入平面组成的输入信号应用一维自适应最大池化。 |
|
对由多个输入平面组成的输入信号应用二维自适应最大池化。 |
|
对由多个输入平面组成的输入信号应用三维自适应最大池化。 |
|
对由多个输入平面组成的输入信号应用一维自适应平均池化。 |
|
对由多个输入平面组成的输入信号应用二维自适应平均池化。 |
|
对由多个输入平面组成的输入信号应用三维自适应平均池化。 |
填充层¶
使用输入边界反射来填充输入张量。 |
|
使用输入边界反射来填充输入张量。 |
|
使用输入边界反射来填充输入张量。 |
|
使用输入边界复制来填充输入张量。 |
|
使用输入边界复制来填充输入张量。 |
|
使用输入边界复制来填充输入张量。 |
|
使用零填充输入张量边界。 |
|
使用零填充输入张量边界。 |
|
使用零填充输入张量边界。 |
|
使用常量值填充输入张量边界。 |
|
使用常量值填充输入张量边界。 |
|
使用常量值填充输入张量边界。 |
|
使用输入边界循环填充来填充输入张量。 |
|
使用输入边界循环填充来填充输入张量。 |
|
使用输入边界循环填充来填充输入张量。 |
非线性激活(加权求和,非线性)¶
按元素应用指数线性单元 (ELU) 函数。 |
|
按元素应用硬收缩 (Hardshrink) 函数。 |
|
按元素应用硬 sigmoid 函数。 |
|
按元素应用硬 tanh 函数。 |
|
按元素应用 hardswish 函数。 |
|
按元素应用 LeakyReLU 函数。 |
|
按元素应用 logsigmoid 函数。 |
|
允许模型共同关注来自不同表示子空间的信息。 |
|
按元素应用 PReLU 函数。 |
|
按元素应用修正线性单元函数。 |
|
按元素应用 ReLU6 函数。 |
|
按元素应用随机 leaky 修正线性单元函数。 |
|
按元素应用 SELU 函数。 |
|
按元素应用 CELU 函数。 |
|
应用高斯误差线性单元函数。 |
|
按元素应用 sigmoid 函数。 |
|
按元素应用 sigmoid 线性单元 (SiLU) 函数。 |
|
按元素应用 Mish 函数。 |
|
按元素应用 softplus 函数。 |
|
按元素应用软收缩函数。 |
|
按元素应用 softsign 函数。 |
|
按元素应用双曲正切 (Tanh) 函数。 |
|
按元素应用 tanhshrink 函数。 |
|
对输入张量的每个元素进行阈值处理。 |
|
应用门控线性单元函数。 |
非线性激活(其他)¶
对 n 维输入张量应用 Softmin 函数。 |
|
对 n 维输入张量应用 Softmax 函数。 |
|
对每个空间位置的特征应用 SoftMax。 |
|
对 n 维输入张量应用 函数。 |
|
高效的 Softmax 近似。 |
规范化层¶
对二维或三维输入应用批规范化。 |
|
对四维输入应用批规范化。 |
|
对五维输入应用批规范化。 |
|
一个带有延迟初始化的 |
|
一个带有延迟初始化的 |
|
一个带有延迟初始化的 |
|
对输入的小批量应用组规范化。 |
|
对 N 维输入应用批规范化。 |
|
应用实例规范化。 |
|
应用实例规范化。 |
|
应用实例规范化。 |
|
一个带有 |
|
一个带有 |
|
一个带有 |
|
对输入的小批量应用层规范化。 |
|
对输入信号应用局部响应规范化。 |
|
对输入的小批量应用均方根层规范化。 |
循环层¶
RNN 模块(RNN、LSTM、GRU)的基类。 |
|
对输入序列应用具有 或 非线性的多层 Elman RNN。 |
|
对输入序列应用多层长短期记忆 (LSTM) RNN。 |
|
对输入序列应用多层门控循环单元 (GRU) RNN。 |
|
具有 tanh 或 ReLU 非线性的 Elman RNN 单元。 |
|
长短期记忆 (LSTM) 单元。 |
|
门控循环单元 (GRU) 单元。 |
Transformer 层¶
一个 Transformer 模型。 |
|
TransformerEncoder 是 N 个编码器层的堆栈。 |
|
TransformerDecoder 是 N 个解码器层的堆栈。 |
|
TransformerEncoderLayer 由自注意力和前馈网络组成。 |
|
TransformerDecoderLayer 由自注意力、多头注意力和前馈网络组成。 |
线性层¶
一个占位符标识运算符,它对参数不敏感。 |
|
对传入的数据应用仿射线性变换:. |
|
对输入数据应用双线性变换:. |
|
一个 |
损失函数¶
创建一个准则,测量输入 和目标 中每个元素之间的平均绝对误差 (MAE)。 |
|
创建一个准则,测量输入 和目标 中每个元素之间的均方误差(平方 L2 范数)。 |
|
此准则计算输入 logits 和目标之间的交叉熵损失。 |
|
连接主义时间分类损失。 |
|
负对数似然损失。 |
|
目标泊松分布的负对数似然损失。 |
|
高斯负对数似然损失。 |
|
Kullback-Leibler 散度损失。 |
|
创建一个准则,测量目标和输入概率之间的二元交叉熵。 |
|
此损失将Sigmoid 层和BCELoss 结合在一个类中。 |
|
创建一个准则,测量给定输入 、,两个 1D 小批量或 0D Tensor,以及标签 1D 小批量或 0D Tensor (包含 1 或 -1)时的损失。 |
|
测量给定输入张量 和标签张量 (包含 1 或 -1)时的损失。 |
|
创建一个准则,优化输入 (一个 2D 小批量 Tensor)和输出 (这是一个 2D Tensor 的目标类索引)之间的多类多分类铰链损失(基于边际的损失)。 |
|
创建一个准则,如果绝对逐元素误差低于 delta,则使用平方项;否则使用 delta 缩放的 L1 项。 |
|
创建一个准则,如果绝对逐元素误差低于 beta,则使用平方项;否则使用 L1 项。 |
|
创建一个准则,优化输入张量 和目标张量 (包含 1 或 -1)之间的两类分类逻辑损失。 |
|
创建一个准则,优化基于最大熵的多标签一对多损失,在输入 和大小为 的目标 之间。 |
|
创建了一个标准,用于衡量输入张量 , 和 Tensor 标签 的损失,其值为 1 或 -1。 |
|
创建了一个标准,用于优化输入 (一个 2D 小型批次 Tensor)和输出 (它是一个目标类别索引的 1D 张量,) |
|
创建一个标准,用于衡量给定输入张量 , , 和大于 的值的 margin 的三元组损失。 |
|
创建一个标准,用于衡量给定输入张量 , 和 (分别代表锚点、正例和负例),以及一个非负的实值函数(“距离函数”),用于计算锚点和正例之间的关系(“正例距离”)和锚点和负例之间的关系(“负例距离”)的三元组损失。 |
视觉层¶
根据上采样因子重新排列张量中的元素。 |
|
反转 PixelShuffle 操作。 |
|
上采样给定的多通道 1D(时间)、2D(空间)或 3D(体积)数据。 |
|
对由多个输入通道组成的输入信号应用 2D 最近邻上采样。 |
|
对由多个输入通道组成的输入信号应用 2D 双线性上采样。 |
数据并行层(多 GPU、分布式)¶
在模块级别实现数据并行。 |
|
基于 |
实用程序¶
来自 torch.nn.utils
模块
用于剪切参数梯度的实用程序函数。
剪切参数可迭代对象的参数梯度范数。 |
|
剪切参数可迭代对象的参数梯度范数。 |
|
在指定值处剪切参数可迭代对象的参数梯度。 |
用于将模块参数展平并取消展平成单个向量的实用程序函数。
将参数可迭代对象展平成单个向量。 |
|
将向量的切片复制到参数可迭代对象中。 |
用于将模块与 BatchNorm 模块融合的实用程序函数。
将卷积模块和 BatchNorm 模块融合成一个新的卷积模块。 |
|
将卷积模块参数和 BatchNorm 模块参数融合成新的卷积模块参数。 |
|
将线性模块和 BatchNorm 模块融合成一个新的线性模块。 |
|
将线性模块参数和 BatchNorm 模块参数融合成新的线性模块参数。 |
用于转换模块参数内存格式的实用程序函数。
将 |
|
将 |
用于对模块参数应用和移除权重归一化的实用程序函数。
对给定模块中的参数应用权重归一化。 |
|
从模块中移除权重归一化重新参数化。 |
|
对给定模块中的参数应用谱归一化。 |
|
从模块中移除谱归一化重新参数化。 |
用于初始化模块参数的实用程序函数。
给定模块类对象和参数 / 关键字参数,实例化模块而不初始化参数 / 缓冲区。 |
用于修剪模块参数的实用程序类和函数。
用于创建新的修剪技术的抽象基类。 |
|
包含一系列修剪方法的容器,用于迭代修剪。 |
|
实用修剪方法,不修剪任何单元,但使用全为一的掩码生成修剪参数化。 |
|
随机修剪张量中(当前未修剪的)单元。 |
|
通过将 L1 范数最低的单元置零来修剪张量中(当前未修剪的)单元。 |
|
随机修剪张量中所有(当前未修剪的)通道。 |
|
根据其 L |
|
应用修剪重新参数化而不修剪任何单元。 |
|
通过移除随机(当前未修剪的)单元来修剪张量。 |
|
通过移除 L1 范数最低的单元来修剪张量。 |
|
通过移除指定维度上的随机通道来修剪张量。 |
|
通过移除指定维度上 L |
|
通过应用指定的 |
|
通过应用 |
|
从模块中移除修剪重新参数化,并从正向钩子中移除修剪方法。 |
|
通过查找修剪预钩子来检查模块是否已修剪。 |
使用 torch.nn.utils.parameterize.register_parametrization()
中的新参数化功能实现的参数化。
对矩阵或矩阵批次应用正交或酉参数化。 |
|
对给定模块中的参数应用权重归一化。 |
|
对给定模块中的参数应用谱归一化。 |
用于对现有模块上的张量进行参数化的实用函数。请注意,这些函数可以用于对给定的参数或缓冲区进行参数化,前提是提供一个将输入空间映射到参数化空间的特定函数。它们不是将对象转换为参数的参数化。有关如何实现自己的参数化的更多信息,请参阅参数化教程。
将参数化注册到模块中的张量。 |
|
删除模块中张量上的参数化。 |
|
上下文管理器,用于启用使用 |
|
确定模块是否具有参数化。 |
一个顺序容器,用于保存和管理参数化 |
用于以无状态方式调用给定模块的实用函数。
通过用提供的参数和缓冲区替换模块参数和缓冲区来对模块执行函数调用。 |
其他模块中的实用函数
保存打包序列的数据和 |
|
打包包含可变长度填充序列的张量。 |
|
填充可变长度序列的打包批次。 |
|
使用 |
|
打包可变长度张量的列表。 |
|
将 PackedSequence 解包到可变长度张量的列表中。 |
|
将填充的张量解包到可变长度张量的列表中。 |
将一系列连续的维数展平为一个张量。 |
|
展开张量维数,将其扩展到所需的形状。 |