torch.nn¶
这些是图的基本构建块
torch.nn
一种不应被视为模型参数的张量。 |
|
一种将被视为模块参数的张量。 |
|
未初始化的参数。 |
|
未初始化的缓冲区。 |
容器¶
所有神经网络模块的基类。 |
|
顺序容器。 |
|
在列表中保存子模块。 |
|
在字典中保存子模块。 |
|
在列表中保存参数。 |
|
在字典中保存参数。 |
模块的全局钩子
注册所有模块通用的前向预钩子。 |
|
为所有模块注册全局前向钩子。 |
|
注册所有模块通用的后向钩子。 |
|
注册所有模块通用的完整后向预钩子。 |
|
注册所有模块通用的后向钩子。 |
|
注册所有模块通用的缓冲区注册钩子。 |
|
注册所有模块通用的模块注册钩子。 |
|
注册所有模块通用的参数注册钩子。 |
卷积层¶
对由几个输入平面组成的输入信号应用 1D 卷积。 |
|
对由几个输入平面组成的输入信号应用 2D 卷积。 |
|
对由几个输入平面组成的输入信号应用 3D 卷积。 |
|
对由几个输入平面组成的输入图像应用 1D 转置卷积运算符。 |
|
对由几个输入平面组成的输入图像应用 2D 转置卷积运算符。 |
|
对由几个输入平面组成的输入图像应用 3D 转置卷积运算符。 |
|
一个 |
|
一个 |
|
一个 |
|
一个 |
|
一个 |
|
一个 |
|
从批处理输入张量中提取滑动局部块。 |
|
将滑动局部块数组组合成一个大的包含张量。 |
池化层¶
对由几个输入平面组成的输入信号应用 1D 最大池化。 |
|
对由几个输入平面组成的输入信号应用 2D 最大池化。 |
|
对由几个输入平面组成的输入信号应用 3D 最大池化。 |
|
计算 |
|
计算 |
|
计算 |
|
对由几个输入平面组成的输入信号应用 1D 平均池化。 |
|
对由几个输入平面组成的输入信号应用 2D 平均池化。 |
|
对由几个输入平面组成的输入信号应用 3D 平均池化。 |
|
对由几个输入平面组成的输入信号应用 2D 分数最大池化。 |
|
对由几个输入平面组成的输入信号应用 3D 分数最大池化。 |
|
对由几个输入平面组成的输入信号应用 1D 功率平均池化。 |
|
对由几个输入平面组成的输入信号应用 2D 功率平均池化。 |
|
对由几个输入平面组成的输入信号应用 3D 功率平均池化。 |
|
对由几个输入平面组成的输入信号应用 1D 自适应最大池化。 |
|
对由几个输入平面组成的输入信号应用 2D 自适应最大池化。 |
|
对由几个输入平面组成的输入信号应用 3D 自适应最大池化。 |
|
对由几个输入平面组成的输入信号应用 1D 自适应平均池化。 |
|
对由几个输入平面组成的输入信号应用 2D 自适应平均池化。 |
|
对由几个输入平面组成的输入信号应用 3D 自适应平均池化。 |
填充层¶
使用输入边界的反射来填充输入张量。 |
|
使用输入边界的反射来填充输入张量。 |
|
使用输入边界的反射来填充输入张量。 |
|
使用输入边界的复制来填充输入张量。 |
|
使用输入边界的复制来填充输入张量。 |
|
使用输入边界的复制来填充输入张量。 |
|
用零填充输入张量边界。 |
|
用零填充输入张量边界。 |
|
用零填充输入张量边界。 |
|
用常数值填充输入张量边界。 |
|
用常数值填充输入张量边界。 |
|
用常数值填充输入张量边界。 |
|
使用输入边界的循环填充来填充输入张量。 |
|
使用输入边界的循环填充来填充输入张量。 |
|
使用输入边界的循环填充来填充输入张量。 |
非线性激活 (加权和,非线性)¶
逐元素应用指数线性单元 (ELU) 函数。 |
|
逐元素应用硬收缩 (Hardshrink) 函数。 |
|
逐元素应用 Hardsigmoid 函数。 |
|
逐元素应用 HardTanh 函数。 |
|
逐元素应用 Hardswish 函数。 |
|
逐元素应用 LeakyReLU 函数。 |
|
逐元素应用 Logsigmoid 函数。 |
|
允许模型共同关注来自不同表示子空间的信息。 |
|
应用逐元素的 PReLU 函数。 |
|
逐元素应用修正线性单元函数。 |
|
逐元素应用 ReLU6 函数。 |
|
逐元素应用随机泄漏修正线性单元函数。 |
|
逐元素应用 SELU 函数。 |
|
逐元素应用 CELU 函数。 |
|
应用高斯误差线性单元函数。 |
|
逐元素应用 Sigmoid 函数。 |
|
逐元素应用 Sigmoid 线性单元 (SiLU) 函数。 |
|
逐元素应用 Mish 函数。 |
|
逐元素应用 Softplus 函数。 |
|
逐元素应用软收缩函数。 |
|
逐元素应用 Softsign 函数。 |
|
逐元素应用双曲正切 (Tanh) 函数。 |
|
逐元素应用 Tanhshrink 函数。 |
|
对输入张量的每个元素进行阈值处理。 |
|
应用门控线性单元函数。 |
非线性激活 (其他)¶
将 Softmin 函数应用于 n 维输入张量。 |
|
将 Softmax 函数应用于 n 维输入张量。 |
|
对每个空间位置的特征应用 SoftMax。 |
|
将 函数应用于 n 维输入张量。 |
|
高效的 softmax 近似。 |
归一化层¶
对 2D 或 3D 输入应用批归一化。 |
|
对 4D 输入应用批归一化。 |
|
对 5D 输入应用批归一化。 |
|
一个 |
|
一个 |
|
一个 |
|
对小批量输入应用组归一化。 |
|
对 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 由自注意力机制、多头注意力机制和前馈网络组成。 |
线性层¶
一个占位符身份运算符,对参数不敏感。 |
|
对传入数据应用仿射线性变换:。 |
|
对传入数据应用双线性变换:。 |
|
一个 |
Dropout 层¶
在训练期间,以概率 |
|
随机将整个通道归零。 |
|
随机将整个通道归零。 |
|
随机将整个通道归零。 |
|
对输入应用 Alpha Dropout。 |
|
随机屏蔽掉整个通道。 |
损失函数¶
创建一个标准,衡量输入 和目标 中每个元素之间的平均绝对误差 (MAE)。 |
|
创建一个衡量输入 和目标 中每个元素之间均方误差(平方 L2 范数)的标准。 |
|
此标准计算输入 logits 和目标之间的交叉熵损失。 |
|
连接时序分类损失 (Connectionist Temporal Classification loss)。 |
|
负对数似然损失 (negative log likelihood loss)。 |
|
具有泊松分布目标的负对数似然损失 (Negative log likelihood loss with Poisson distribution of target)。 |
|
高斯负对数似然损失 (Gaussian negative log likelihood loss)。 |
|
库尔贝-莱布勒散度损失 (Kullback-Leibler divergence loss)。 |
|
创建一个衡量目标和输入概率之间二元交叉熵 (Binary Cross Entropy) 的标准。 |
|
此损失在一个类中结合了 Sigmoid 层和 BCELoss。 |
|
创建一个标准,用于衡量给定输入 、(两个 1D mini-batch 或 0D Tensors)、以及标签 1D mini-batch 或 0D Tensor (包含 1 或 -1)时的损失。 |
|
衡量给定输入张量 和标签张量 (包含 1 或 -1)时的损失。 |
|
创建一个标准,用于优化输入 (2D mini-batch Tensor) 和输出 (目标类别索引的 2D Tensor) 之间的多类多分类合页损失(基于 margin 的损失)。 |
|
创建一个标准,如果元素级绝对误差低于 delta,则使用平方项;否则使用 delta 缩放的 L1 项。 |
|
创建一个标准,如果元素级绝对误差低于 beta,则使用平方项;否则使用 L1 项。 |
|
创建一个标准,用于优化输入张量 和目标张量 (包含 1 或 -1)之间的二分类逻辑损失。 |
|
创建一个标准,用于优化基于最大熵的 multi-label one-versus-all 损失,输入为 ,目标为大小为 的 。 |
|
创建一个标准,用于衡量给定输入张量 、 和 Tensor 标签 (值为 1 或 -1)时的损失。 |
|
创建一个标准,用于优化输入 (2D mini-batch Tensor) 和输出 (目标类别索引的 1D 张量,)之间的多类分类合页损失(基于 margin 的损失)。 |
|
创建一个标准,用于衡量给定输入张量 、、 和 margin 值大于 的三元组损失 (triplet loss)。 |
|
创建一个标准,用于衡量给定输入张量 、 和 (分别表示 anchor、positive 和 negative 示例)以及用于计算 anchor 和 positive 示例之间关系(“positive 距离”)和 anchor 和 negative 示例之间关系(“negative 距离”)的非负实值函数(“距离函数”)的三元组损失 (triplet loss)。 |
视觉层 (Vision Layers)¶
根据放大因子重新排列张量中的元素。 |
|
反转 PixelShuffle 操作。 |
|
对给定的多通道 1D(时间)、2D(空间)或 3D(体积)数据进行上采样。 |
|
将 2D 最近邻上采样应用于由多个输入通道组成的输入信号。 |
|
将 2D 双线性上采样应用于由多个输入通道组成的输入信号。 |
Shuffle 层 (Shuffle Layers)¶
分割和重新排列张量中的通道。 |
DataParallel 层(多 GPU,分布式)(DataParallel Layers (multi-GPU, distributed))¶
在模块级别实现数据并行 (data parallelism)。 |
|
在模块级别基于 |
实用工具 (Utilities)¶
来自 torch.nn.utils
模块
用于裁剪参数梯度的实用函数。
裁剪参数迭代器的梯度范数 (gradient norm)。 |
|
裁剪参数迭代器的梯度范数 (gradient norm)。 |
|
在指定值裁剪参数迭代器的梯度。 |
|
计算张量迭代器的范数 (norm)。 |
|
给定预先计算的总范数和期望的最大范数,缩放参数迭代器的梯度。 |
用于将模块参数展平 (flatten) 和从单个向量中解展平 (unflatten) 的实用函数。
将参数迭代器展平为单个向量。 |
|
将向量切片复制到参数迭代器中。 |
用于融合具有 BatchNorm 模块的模块的实用函数。
将卷积模块和 BatchNorm 模块融合为单个新的卷积模块。 |
|
将卷积模块参数和 BatchNorm 模块参数融合为新的卷积模块参数。 |
|
将线性模块和 BatchNorm 模块融合为单个新的线性模块。 |
|
将线性模块参数和 BatchNorm 模块参数融合为新的线性模块参数。 |
用于转换模块参数内存格式的实用函数。
将 |
|
将 |
用于从模块参数应用和删除权重归一化 (weight normalization) 的实用函数。
将权重归一化 (weight normalization) 应用于给定模块中的参数。 |
|
从模块中删除权重归一化 (weight normalization) 重参数化。 |
|
将谱归一化 (spectral normalization) 应用于给定模块中的参数。 |
|
从模块中删除谱归一化 (spectral normalization) 重参数化。 |
用于初始化模块参数的实用函数。
给定模块类对象和 args/kwargs,实例化模块而不初始化参数/缓冲区。 |
用于剪枝 (pruning) 模块参数的实用类和函数。
用于创建新剪枝技术的抽象基类。 |
|
容器,用于保存迭代剪枝的剪枝方法序列。 |
|
实用剪枝方法,不剪枝任何单元,但生成具有全 1 掩码的剪枝参数化。 |
|
随机剪枝张量中(当前未剪枝的)单元。 |
|
通过将 L1 范数最小的单元置零来剪枝张量中(当前未剪枝的)单元。 |
|
随机剪枝张量中整个(当前未剪枝的)通道。 |
|
根据张量的 L |
|
应用剪枝重参数化而不剪枝任何单元。 |
|
通过删除随机(当前未剪枝的)单元来剪枝张量。 |
|
通过删除 L1 范数最小的单元来剪枝张量。 |
|
通过沿指定维度删除随机通道来剪枝张量。 |
|
通过沿指定维度删除 L |
|
通过应用指定的 |
|
通过应用 |
|
从模块中删除剪枝重参数化,并从前向钩子中删除剪枝方法。 |
|
通过查找剪枝前向钩子来检查模块是否被剪枝。 |
使用 torch.nn.utils.parameterize.register_parametrization()
中的新参数化功能实现的参数化。
将正交或酉参数化应用于矩阵或一批矩阵。 |
|
将权重归一化 (weight normalization) 应用于给定模块中的参数。 |
|
将谱归一化 (spectral normalization) 应用于给定模块中的参数。 |
用于参数化现有模块上张量的实用函数。 请注意,这些函数可用于使用特定函数参数化给定的 Parameter 或 Buffer,该函数将从输入空间映射到参数化空间。 它们不是将对象转换为参数的参数化。 有关如何实现您自己的参数化的更多信息,请参阅 参数化教程 (Parametrizations tutorial)。
将参数化注册到模块中的张量。 |
|
删除模块中张量上的参数化。 |
|
上下文管理器,用于启用使用 |
|
确定模块是否具有参数化。 |
一个顺序容器,用于保存和管理参数化 |
用于以无状态方式调用给定模块的实用函数。
通过使用提供的参数和缓冲区替换模块参数和缓冲区,对模块执行函数式调用。 |
其他模块中的实用函数
保存打包序列的数据和 |
|
打包包含可变长度填充序列的张量。 |
|
填充可变长度序列的打包批次。 |
|
使用 |
|
打包可变长度张量列表。 |
|
将 PackedSequence 解包为可变长度张量列表。 |
|
将填充张量解填充为可变长度张量列表。 |
将连续范围的维度展平为张量。 |
|
解展平张量维度,将其扩展为所需的形状。 |
量化函数 (Quantized Functions)¶
量化 (Quantization) 是指以低于浮点精度的位宽执行计算和存储张量的技术。 PyTorch 支持每个张量和每个通道的非对称线性量化。 要了解有关如何在 PyTorch 中使用量化函数的更多信息,请参阅 量化 (Quantization) 文档。
延迟模块初始化 (Lazy Modules Initialization)¶
用于延迟初始化参数的模块的 mixin,也称为“延迟模块 (lazy modules)”。 |