torch.nn¶
以下是图形的基本构建块:
torch.nn
一种不应被视为模型参数的 Tensor。 |
|
一种 Tensor,将被视为 module 参数。 |
|
未初始化的参数。 |
|
未初始化的缓冲区。 |
器皿¶
所有神经网络模块的基类。 |
|
顺序容器。 |
|
将子模块保存在列表中。 |
|
在字典中保存子模块。 |
|
在列表中保存参数。 |
|
在字典中保存参数。 |
Module 的全局钩子
注册一个所有模块通用的正向预钩子。 |
|
为所有模块注册一个全局 forward hook。 |
|
注册一个所有模块通用的反向钩子。 |
|
注册一个所有模块通用的向后预钩子。 |
|
注册一个所有模块通用的反向钩子。 |
|
注册一个所有模块通用的缓冲区注册钩子。 |
|
注册一个所有模块通用的模块注册钩子。 |
|
注册一个所有模块通用的参数注册钩子。 |
卷积层¶
将 1D 卷积应用于由多个输入平面组成的输入信号。 |
|
将 2D 卷积应用于由多个输入平面组成的输入信号。 |
|
在由多个输入平面组成的输入信号上应用 3D 卷积。 |
|
将 1D 转置卷积运算符应用于由多个输入平面组成的输入图像。 |
|
将 2D 转置卷积运算符应用于由多个输入平面组成的输入图像。 |
|
将 3D 转置卷积运算符应用于由多个输入平面组成的输入图像。 |
|
从批处理的输入张量中提取滑动局部块。 |
|
将一组滑动的局部块组合成一个大的包含张量。 |
池化层¶
在由多个输入平面组成的输入信号上应用 1D 最大池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 最大池化。 |
|
在由多个输入平面组成的输入信号上应用 3D 最大池化。 |
|
计算 的偏逆 。 |
|
计算 的偏逆 。 |
|
计算 的偏逆 。 |
|
在由多个输入平面组成的输入信号上应用 1D 平均池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 平均池化。 |
|
在由多个输入平面组成的输入信号上应用 3D 平均池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 分数最大池化。 |
|
在由多个输入平面组成的输入信号上应用 3D 分数最大池化。 |
|
在由多个输入平面组成的输入信号上应用 1D 功率平均池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 功率平均池。 |
|
在由多个输入平面组成的输入信号上应用 3D 功率平均池化。 |
|
在由多个输入平面组成的输入信号上应用 1D 自适应最大池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 自适应最大池化。 |
|
在由多个输入平面组成的输入信号上应用 3D 自适应最大池化。 |
|
在由多个输入平面组成的输入信号上应用 1D 自适应平均池化。 |
|
在由多个输入平面组成的输入信号上应用 2D 自适应平均池化。 |
|
在由多个输入平面组成的输入信号上应用 3D 自适应平均池化。 |
填充层¶
使用输入边界的反射填充输入张量。 |
|
使用输入边界的反射填充输入张量。 |
|
使用输入边界的反射填充输入张量。 |
|
使用输入边界的复制填充输入张量。 |
|
使用输入边界的复制填充输入张量。 |
|
使用输入边界的复制填充输入张量。 |
|
用零填充 input tensor 边界。 |
|
用零填充 input tensor 边界。 |
|
用零填充 input tensor 边界。 |
|
用常量值填充输入张量边界。 |
|
用常量值填充输入张量边界。 |
|
用常量值填充输入张量边界。 |
|
使用输入边界的圆形填充来填充输入张量。 |
|
使用输入边界的圆形填充来填充输入张量。 |
|
使用输入边界的圆形填充来填充输入张量。 |
非线性激活 (加权和、非线性)¶
按元素应用 Exponential Linear Unit (ELU) 函数。 |
|
按元素应用 Hard Shrinkage (Hardshrink) 功能。 |
|
按元素应用 Hardsigmoid 函数。 |
|
按元素应用 HardTanh 函数。 |
|
按元素应用 Hardswish 函数。 |
|
按元素应用 LeakyReLU 函数。 |
|
按元素应用 Logsigmoid 函数。 |
|
允许模型共同关注来自不同表示子空间的信息。 |
|
应用元素级 PReLU 函数。 |
|
按元素应用修正的线性单元函数。 |
|
按元素应用 ReLU6 函数。 |
|
按元素应用随机泄漏整流线性单元函数。 |
|
按元素应用 SELU 函数。 |
|
按元素应用 CELU 函数。 |
|
应用 Gaussian Error Linear Units 功能。 |
|
按元素应用 Sigmoid 函数。 |
|
按元素应用 Sigmoid 线性单元 (SiLU) 功能。 |
|
按元素应用 Mish 函数。 |
|
按元素应用 Softplus 函数。 |
|
按元素应用软收缩功能。 |
|
应用元素级 Softsign 函数。 |
|
按元素应用 Hyperbolic Chung (Tanh) 函数。 |
|
应用元素级 Tanhshrink 函数。 |
|
对输入 Tensor 的每个元素进行阈值设置。 |
|
应用门控线性单元功能。 |
非线性激活 (其他)¶
将 Softmin 函数应用于 n 维输入 Tensor。 |
|
将 Softmax 函数应用于 n 维输入 Tensor。 |
|
将 SoftMax 应用于每个空间位置的特征。 |
|
应用函数转换为 n 维输入 Tensor。 |
|
高效的 softmax 近似。 |
归一化图层¶
对 2D 或 3D 输入应用批量归一化。 |
|
对 4D 输入应用批量归一化。 |
|
对 5D 输入应用批量归一化。 |
|
具有延迟初始化的模块。 |
|
具有延迟初始化的模块。 |
|
具有延迟初始化的模块。 |
|
对一小批输入应用组归一化。 |
|
对 N 维输入应用批量归一化。 |
|
应用实例标准化。 |
|
应用实例标准化。 |
|
应用实例标准化。 |
|
对一小批输入应用 Layer Normalization。 |
|
对输入信号应用局部响应归一化。 |
|
对一小批输入应用均方根层归一化。 |
循环层¶
RNN 模块的基类(RNN、LSTM、GRU)。 |
|
应用多层 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 图层¶
在训练过程中,使用 probability 将输入张量的某些元素随机归零。 |
|
随机将整个通道清零。 |
|
随机将整个通道清零。 |
|
随机将整个通道清零。 |
|
将 Alpha Dropout 应用于输入。 |
|
随机遮罩整个通道。 |
损失函数¶
创建一个标准,用于测量输入中每个元素之间的平均绝对误差 (MAE)和目标. |
|
创建一个标准,用于测量输入中每个元素之间的均方误差(平方 L2 范数)和目标. |
|
该准则计算 input logit 和 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¶
根据放大因子重新排列张量中的元素。 |
|
反转 PixelShuffle 操作。 |
|
对给定的多通道 1D(时间)、2D(空间)或 3D(体积)数据进行上采样。 |
|
将 2D 最近邻上采样应用于由多个输入通道组成的输入信号。 |
|
将 2D 双线性上采样应用于由多个输入通道组成的输入信号。 |
DataParallel Layers(多 GPU,分布式)¶
在模块级别实现数据并行。 |
|
基于模块级别实现分布式数据并行。 |
公用事业¶
从模块中:torch.nn.utils
用于剪辑参数渐变的实用函数。
裁剪参数可迭代对象的梯度范数。 |
|
裁剪参数可迭代对象的梯度范数。 |
|
将参数可迭代对象的渐变剪辑为指定值。 |
用于将 Module 参数展平和从单个向量展平和取消展平的实用函数。
将参数的可迭代对象展平为单个 vector。 |
|
将 vector 的切片复制到参数的可迭代对象中。 |
将 Module 与 BatchNorm 模块融合的 Utility 函数。
将卷积模块和 BatchNorm 模块融合成一个新的卷积模块。 |
|
将卷积模块参数和 BatchNorm 模块参数融合为新的卷积模块参数。 |
|
将线性模块和 BatchNorm 模块融合成一个新的线性模块。 |
|
将线性模块参数和 BatchNorm 模块参数融合为新的线性模块参数。 |
用于转换 Module 参数内存格式的 Utility 函数。
转换为 . |
|
转换为 转换递归应用于嵌套 ,包括 。 |
用于从 Module 参数中应用和删除权重归一化的实用函数。
将权重标准化应用于给定模块中的参数。 |
|
从模块中删除权重规范化重新参数化。 |
|
将频谱归一化应用于给定模块中的参数。 |
|
从模块中删除光谱归一化重新参数化。 |
用于初始化 Module 参数的实用函数。
给定一个模块类 object 和 args / kwargs,在不初始化参数/缓冲区的情况下实例化模块。 |
用于修剪 Module 参数的 Util 类和函数。
用于创建新修剪技术的抽象基类。 |
|
Container 包含一系列用于迭代修剪的修剪方法。 |
|
实用程序修剪方法,不修剪任何单元,但生成带有 1 掩码的修剪参数化。 |
|
随机修剪张量中的(当前未修剪)单元。 |
|
通过将具有最低 L1 范数的单元归零来修剪张量中的单元(当前未修剪)。 |
|
随机修剪张量中的整个(当前未修剪)通道。 |
|
根据 L-norm 修剪张量中的整个(当前未修剪)通道。 |
|
应用修剪重新参数化,而不修剪任何单位。 |
|
通过删除随机(当前未修剪)单元来修剪张量。 |
|
通过删除具有最低 L1 范数的单元来修剪张量。 |
|
通过删除沿指定维度的随机通道来修剪张量。 |
|
通过删除沿指定维度具有最低 L 范数的通道来修剪张量。 |
|
通过应用指定的 . |
|
通过在 中应用预先计算的掩码来修剪与调用的参数对应的张量。 |
|
从模块中删除 pruning reparameterization,从 forward hook 中删除 pruning 方法。 |
|
通过查找 pruning pre-hooks 来检查模块是否被修剪。 |
使用新的参数化功能实现参数化
在。torch.nn.utils.parameterize.register_parametrization()
将正交或酉参数化应用于矩阵或一批矩阵。 |
|
将权重标准化应用于给定模块中的参数。 |
|
将频谱归一化应用于给定模块中的参数。 |
用于在现有 Module 上参数化 Tensor 的实用函数。 请注意,这些函数可用于参数化给定的 Parameter 或 Buffer 给定一个特定函数,该函数从输入空间映射到 参数化空间。它们不是会转换的参数化 将对象转换为参数。有关如何实现自己的参数化的更多信息,请参阅 Parametrizations 教程。
将参数化注册到模块中的张量。 |
|
删除模块中张量的参数化。 |
|
上下文管理器,该管理器在 注册到 的参数化中启用缓存系统。 |
|
确定模块是否具有参数化。 |
以无状态方式调用给定 Module 的 Utility 函数。
通过将模块参数和缓冲区替换为提供的参数和缓冲区,对模块执行功能调用。 |
其他模块中的实用函数
保存打包序列的数据和列表。 |
|
打包一个包含可变长度的填充序列的 Tensor。 |
|
填充一批可变长度序列。 |
|
用 . |
|
打包可变长度 Tensor 的列表。 |
|
将 PackedSequence 解压缩到可变长度 Tensor 列表中。 |
|
Unpad 填充的 Tensor 到可变长度的 Tensor 列表中。 |
将连续范围的 dim 展平为张量。 |
|
展开 tensor dim 并将其扩展为所需的形状。 |