torch.nn¶
以下是图形的基本构建块:
torch.nn
一种 Tensor,将被视为 module 参数。 |
|
未初始化的参数。 |
|
未初始化的缓冲区。 |
器皿¶
所有神经网络模块的基类。 |
|
顺序容器。 |
|
将子模块保存在列表中。 |
|
在字典中保存子模块。 |
|
在列表中保存参数。 |
|
在字典中保存参数。 |
Module 的全局钩子
注册所有 modules 通用的正向 pre-hook。 |
|
为所有模块注册一个全局 forward hook |
|
注册所有模块共有的向后钩子。 |
|
注册所有模块共有的向后钩子。 |
卷积层¶
将 1D 卷积应用于由多个输入平面组成的输入信号。 |
|
将 2D 卷积应用于由多个输入平面组成的输入信号。 |
|
在由多个输入平面组成的输入信号上应用 3D 卷积。 |
|
将 1D 转置卷积运算符应用于由多个输入平面组成的输入图像。 |
|
将 2D 转置卷积运算符应用于由多个输入平面组成的输入图像。 |
|
将 3D 转置卷积运算符应用于由多个输入平面组成的输入图像。 |
|
从批处理的输入张量中提取滑动局部块。 |
|
将一组滑动的局部块组合成一个大的包含张量。 |
池化层¶
在由多个输入平面组成的输入信号上应用 1D 最大池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 最大池化。 |
|
在由多个输入平面组成的输入信号上应用 3D 最大池化。 |
|
计算 的偏逆 。 |
|
计算 的偏逆 。 |
|
计算 的偏逆 。 |
|
在由多个输入平面组成的输入信号上应用 1D 平均池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 平均池化。 |
|
在由多个输入平面组成的输入信号上应用 3D 平均池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 分数最大池化。 |
|
在由多个输入平面组成的输入信号上应用 3D 分数最大池化。 |
|
在由多个输入平面组成的输入信号上应用 1D 功率平均池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 功率平均池。 |
|
在由多个输入平面组成的输入信号上应用 1D 自适应最大池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 自适应最大池化。 |
|
在由多个输入平面组成的输入信号上应用 3D 自适应最大池化。 |
|
在由多个输入平面组成的输入信号上应用 1D 自适应平均池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 自适应平均池化。 |
|
在由多个输入平面组成的输入信号上应用 3D 自适应平均池化。 |
填充层¶
使用输入边界的反射填充输入张量。 |
|
使用输入边界的反射填充输入张量。 |
|
使用输入边界的反射填充输入张量。 |
|
使用输入边界的复制填充输入张量。 |
|
使用输入边界的复制填充输入张量。 |
|
使用输入边界的复制填充输入张量。 |
|
用零填充 input tensor 边界。 |
|
用常量值填充输入张量边界。 |
|
用常量值填充输入张量边界。 |
|
用常量值填充输入张量边界。 |
非线性激活 (加权和、非线性)¶
按元素应用指数线性单元 (ELU) 函数,如论文中所述:通过指数线性单元 (ELU) 进行快速准确的深度网络学习。 |
|
按元素应用 Hard Shrinkage (Hardshrink) 功能。 |
|
按元素应用 Hardsigmoid 函数。 |
|
按元素应用 HardTanh 函数。 |
|
按元素应用 hardswish 函数,如论文中所述: |
|
应用元素级函数: |
|
应用元素级函数: |
|
允许模型共同关注来自不同表示子空间的信息,如论文中所述:Attention Is All You Need。 |
|
应用元素级函数: |
|
按元素应用修正的线性单元函数: |
|
应用元素级函数: |
|
按元素应用随机泄漏整流衬垫单元函数,如论文中所述: |
|
按元素应用,如下所示: |
|
应用元素级函数: |
|
应用 Gaussian Error Linear Units 函数: |
|
应用元素级函数: |
|
按元素应用 Sigmoid 线性单元 (SiLU) 功能。 |
|
按元素应用 Mish 函数。 |
|
应用 Softplus 函数元素。 |
|
按元素应用软收缩函数: |
|
应用元素级函数: |
|
按元素应用 Hyperbolic Chung (Tanh) 函数。 |
|
应用元素级函数: |
|
对输入 Tensor 的每个元素进行阈值设置。 |
|
应用门控线性单元功能哪里是输入矩阵的前半部分,而是下半场。 |
非线性激活 (其他)¶
将 Softmin 函数应用于 n 维输入 Tensor,重新缩放它们,使 n 维输出 Tensor 的元素位于 [0, 1] 范围内,总和为 1。 |
|
将 Softmax 函数应用于 n 维输入 Tensor,重新缩放它们,以便 n 维输出 Tensor 的元素位于 [0,1] 范围内,总和为 1。 |
|
将 SoftMax 应用于每个空间位置的特征。 |
|
应用函数转换为 n 维输入 Tensor。 |
|
Edouard Grave、Armand Joulin、Moustapha Cissé、David Grangier 和 Hervé Jégou 在 GPU 的高效 softmax 近似中所述的高效 softmax 近似。 |
归一化图层¶
对 2D 或 3D 输入应用批量归一化,如论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中所述。 |
|
对 4D 输入(具有附加通道维度的 2D 输入的小批量)应用批量归一化,如论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中所述。 |
|
对 5D 输入(具有附加通道维度的 3D 输入的小批量)应用批量归一化,如论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中所述。 |
|
对一小批输入应用组归一化,如论文组归一化中所述 |
|
对 N 维输入(具有附加通道维度的 [N-2]D 输入的小批量)应用批量归一化,如论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中所述。 |
|
将实例标准化应用于 2D(未批处理)或 3D(批处理)输入,如论文实例标准化:快速样式化的缺失成分中所述。 |
|
将实例标准化应用于 4D 输入(具有附加通道维度的 2D 输入的小批量),如论文实例标准化:快速风格化的缺失成分中所述。 |
|
将实例标准化应用于 5D 输入(具有附加通道维度的 3D 输入的小批量),如论文实例标准化:快速风格化的缺失成分中所述。 |
|
对一小批输入应用图层归一化,如论文图层归一化中所述 |
|
对由多个输入平面组成的输入信号应用局部响应归一化,其中声道占据第二个维度。 |
循环层¶
应用多层 Elman RNN或nonlinearity 到 input 序列。 |
|
将多层长短期记忆 (LSTM) RNN 应用于输入序列。 |
|
将多层门控循环单元 (GRU) RNN 应用于输入序列。 |
|
具有 tanh 或 ReLU 非线性的 Elman RNN 单元。 |
|
较长的短期记忆 (LSTM) 单元。 |
|
门控循环单元 (GRU) 单元 |
变压器层¶
transformer 模型。 |
|
TransformerEncoder 是 N 个编码器层的堆栈 |
|
TransformerDecoder 是 N 个解码器层的堆栈 |
|
TransformerEncoderLayer 由 self-attn 和前馈网络组成。 |
|
TransformerDecoderLayer 由 self-attn、multi-head-attn 和前馈网络组成。 |
Dropout 图层¶
在训练期间,使用伯努利分布中的样本以概率随机将输入张量的某些元素随机归零。 |
|
将整个 channel 随机归零(channel 是一个 2D 特征图,例如-th 通道的-batch input 中的第 -th 个样本是 2D 张量). |
|
将整个通道随机归零(通道是一个 3D 特征图,例如-th 通道的-batch input 中的第 -th 个样本是 3D 张量). |
|
将 Alpha Dropout 应用于输入。 |
|
随机屏蔽整个通道(通道是一个特征图,例如 |
损失函数¶
创建一个标准,用于测量输入中每个元素之间的平均绝对误差 (MAE)和目标. |
|
创建一个标准,用于测量输入中每个元素之间的均方误差(平方 L2 范数)和目标. |
|
此准则计算 input 和 target 之间的交叉熵损失。 |
|
Connectionist Temporal Classification 损失。 |
|
负对数似然损失。 |
|
目标泊松分布的负对数似然损失。 |
|
高斯负对数似然损失。 |
|
Kullback-Leibler 背离损失。 |
|
创建一个标准,用于测量目标概率和输入概率之间的二进制交叉熵: |
|
这种损失将 Sigmoid 层和 BCELoss 组合在一个类中。 |
|
创建一个标准来衡量给定输入的损失,、两个 1D 小批量或 0D 张量,以及一个标签 1D 小批量或 0D 张量 (包含 1 或 -1)。 |
|
测量给定输入张量的损失和一个 labels 张量(包含 1 或 -1)。 |
|
创建一个标准,用于优化输入之间的多类多分类铰链损失(基于边际的损失)(一个 2D 小批量 Tensor)和输出(这是目标类索引的 2D 张量)。 |
|
创建一个条件,如果绝对元素误差低于 delta,则使用平方项,否则使用 delta 缩放的 L1 项。 |
|
创建一个标准,如果绝对元素误差低于 beta,则使用平方项,否则使用 L1 项。 |
|
创建一个标准,用于优化输入张量之间的两类分类 logistic loss和目标张量(包含 1 或 -1)。 |
|
创建一个标准,该标准根据输入之间的最大熵优化多标签一对多损失和目标大小. |
|
创建一个标准来测量给定输入张量的损失,和一个 Tensor 标签值为 1 或 -1。 |
|
创建一个标准,用于优化输入之间的多类分类铰链损失(基于边际的损失)(一个 2D 小批量 Tensor)和输出(这是目标类索引的 1D 张量,): |
|
创建一个标准,用于测量给定输入张量的三元组损失,,以及值大于. |
|
创建一个标准,用于测量给定输入张量的三元组损失,和(分别表示锚点、正例和负例)和用于计算锚点和正例(“正距离”)和锚点和负例(“负距离”)之间的关系的非负实值函数(“距离函数”)。 |
Vision Layers¶
在 shape 为转换为 shape 为,其中 r 是放大因子。 |
|
对给定的多通道 1D(时间)、2D(空间)或 3D(体积)数据进行上采样。 |
|
将 2D 最近邻上采样应用于由多个输入通道组成的输入信号。 |
|
将 2D 双线性上采样应用于由多个输入通道组成的输入信号。 |
DataParallel Layers(多 GPU,分布式)¶
在模块级别实现数据并行。 |
|
在模块级别实现基于 package 的分布式数据并行。 |
公用事业¶
从模块torch.nn.utils
剪辑参数可迭代对象的梯度范数。 |
|
以指定值剪辑参数可迭代对象的渐变。 |
|
将参数转换为一个向量 |
|
将一个向量转换为参数 |
|
用于创建新修剪技术的抽象基类。 |
Container 包含一系列用于迭代修剪的修剪方法。 |
|
实用程序修剪方法,不修剪任何单元,但生成带有 1 掩码的修剪参数化。 |
|
随机修剪张量中的(当前未修剪)单元。 |
|
通过将具有最低 L1 范数的单元归零来修剪张量中的单元(当前未修剪)。 |
|
随机修剪张量中的整个(当前未修剪)通道。 |
|
根据 L-norm 修剪张量中的整个(当前未修剪)通道。 |
|
将修剪重新参数化应用于与调用的参数对应的张量,而不实际修剪任何单位。 |
|
通过删除随机选择的指定(当前未修剪)单元,修剪与调用的参数对应的张量。 |
|
通过删除具有最低 L1 范数的指定数量的(当前未修剪的)单元,修剪与调用的参数对应的张量。 |
|
通过沿指定的 selected 随机删除指定的 of (当前未修剪的) 通道,修剪与调用的参数对应的张量。 |
|
通过沿指定的最低 L 范数删除指定的(当前未修剪的)通道,修剪与调用的参数对应的张量。 |
|
通过应用指定的 . |
|
通过在 中应用预先计算的掩码来修剪与调用的参数相对应的张量。 |
|
从模块中删除 pruning 重新参数化,从 forward 钩子中删除 pruning 方法。 |
|
通过在继承自 . |
|
将权重标准化应用于给定模块中的参数。 |
|
从模块中删除权重规范化重新参数化。 |
|
将频谱归一化应用于给定模块中的参数。 |
|
从模块中删除光谱归一化重新参数化。 |
|
给定一个模块类 object 和 args / kwargs,在不初始化参数/缓冲区的情况下实例化模块。 |
使用新的参数化功能实现参数化
在。torch.nn.utils.parameterize.register_parametrization()
将正交或酉参数化应用于矩阵或一批矩阵。 |
|
将频谱归一化应用于给定模块中的参数。 |
用于在现有 Module 上参数化 Tensor 的实用函数。 请注意,这些函数可用于参数化给定的 Parameter 或 Buffer 给定一个特定函数,该函数从输入空间映射到 参数化空间。它们不是会转换的参数化 将对象转换为参数。有关如何实现自己的参数化的更多信息,请参阅 Parametrizations 教程。
向模块中的张量添加参数化。 |
|
删除模块中张量的参数化。 |
|
上下文管理器,该管理器在 注册到 的参数化中启用缓存系统。 |
|
如果 module 具有活动的参数化,则返回。 |
一个顺序容器,用于保存和管理 or 、 、 。 |
其他模块中的实用函数
保存打包序列的数据和列表。 |
|
打包一个包含可变长度的填充序列的 Tensor。 |
|
填充一批可变长度序列的打包批次。 |
|
用 |
|
打包可变长度 Tensor 的列表 |
将连续范围的 dim 展平为张量。 |
|
展开 tensor dim 并将其扩展为所需的形状。 |