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)函数,逐元素。 |
|
应用硬 Sigmoid 函数,逐元素。 |
|
逐元素应用 HardTanh 函数。 |
|
逐元素应用 Hardswish 函数。 |
|
逐元素应用 LeakyReLU 函数。 |
|
逐元素应用 Logsigmoid 函数。 |
|
允许模型联合关注来自不同表示子空间的信息。 |
|
应用逐元素 PReLU 函数。 |
|
逐元素应用 ReLU 线性单元函数。 |
|
逐元素应用 ReLU6 函数。 |
|
应用随机化的泄漏整流线性单元函数,逐元素。 |
|
应用 SELU 函数,逐元素。 |
|
应用 CELU 函数,逐元素。 |
|
应用高斯误差线性单元函数。 |
|
逐元素应用 Sigmoid 函数。 |
|
逐元素应用 Sigmoid 线性单元(SiLU)函数。 |
|
逐元素应用 Mish 函数。 |
|
逐元素应用 Softplus 函数。 |
|
逐元素应用软收缩函数。 |
|
逐元素应用软符号函数。 |
|
逐元素应用双曲正切(Tanh)函数。 |
|
逐元素应用双曲正切收缩函数。 |
|
阈值化输入张量的每个元素。 |
|
应用门控线性单元函数。 |
非线性激活(其他)¶
将 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)单元。 |
变换层 ¶
变换模型。 |
|
TransformerEncoder 是由 N 个编码器层堆叠而成。 |
|
TransformerDecoder 是由 N 个解码器层堆叠而成。 |
|
TransformerEncoderLayer 由自注意力机制和前馈网络组成。 |
|
TransformerDecoderLayer 由自注意力机制、多头注意力机制和前馈网络组成。 |
线性层
一个对参数不敏感的占位符身份运算符。 |
|
对传入数据进行仿射线性变换: 。 |
|
对传入数据进行双线性变换: 。 |
|
一个自动推断 in_features 的模块。 |
Dropout 层 ¶
在训练过程中,以概率 |
|
随机将整个通道置为零。 |
|
随机将整个通道置零 |
|
随机将整个通道置零 |
|
在输入上应用 Alpha Dropout |
|
随机屏蔽整个通道 |
稀疏层 ¶
一个简单的查找表,存储固定字典和大小的嵌入。 |
|
计算嵌入“包”的总和或平均值,而不实例化中间嵌入。 |
距离函数 ¶
在 dim 维度上计算 和 之间的余弦相似度。 |
|
计算输入向量的成对距离,或输入矩阵列之间的距离。 |
损失函数
创建一个标准,用于衡量输入 中的每个元素与目标 之间的平均绝对误差(MAE)。 |
|
创建一个标准,用于衡量输入 和目标 之间每个元素的均方误差(平方 L2 范数)。 |
|
此标准计算输入 logits 和目标之间的交叉熵损失。 |
|
连接主义时序分类损失。 |
|
负对数似然损失。 |
|
目标泊松分布的负对数似然损失。 |
|
高斯负对数似然损失。 |
|
库尔巴克-莱布勒散度损失。 |
|
创建一个测量目标与输入概率之间二元交叉熵的准则。 |
|
该损失将 Sigmoid 层和 BCELoss 合并为一个单一类。 |
|
创建一个准则,用于衡量输入 、 (两个 1D mini-batch 或 0D 张量)和标签 1D mini-batch 或 0D 张量 (包含 1 或-1)给出的损失。 |
|
根据输入张量 和标签张量 (包含 1 或-1)计算损失。 |
|
创建一个准则,用于优化输入 (一个 2D mini-batch 张量)和输出 (是一个 2D 张量,包含目标类索引)之间的多类多分类 hinge 损失(基于边界的损失)。 |
|
创建一个标准,当元素-wise 绝对误差低于 delta 时使用平方项,否则使用 delta 缩放的 L1 项。 |
|
创建一个标准,当元素-wise 绝对误差低于 beta 时使用平方项,否则使用 L1 项。 |
|
创建一个标准,优化输入张量 和目标张量 (包含 1 或-1)之间的二分类逻辑损失。 |
|
创建一个标准,基于最大熵,在输入 和目标 (大小为 )之间优化多标签一对多损失。 |
|
创建一个标准,用于衡量输入张量 、 和标签张量 (值为 1 或-1)的损失。 |
|
创建一个标准,用于优化输入 (一个 2D 小批量张量)和输出 (是一个 1D 的目标类别索引张量 )之间的多类分类 Hinge 损失(基于边界的损失)。 |
|
创建一个标准,用于衡量给定输入张量 、 、 (分别代表锚、正例和负例)以及一个大于 的边界的三元组损失。 |
|
创建一个标准,用于衡量给定输入张量 、 和 (分别代表锚、正例和负例)的三元组损失,以及一个非负实值函数(“距离函数”),用于计算锚和正例之间的“正距离”以及锚和负例之间的“负距离”。 |
视觉层 ¶
根据上采样因子对张量中的元素进行重新排列。 |
|
反向执行 PixelShuffle 操作。 |
|
对给定的多通道 1D(时间),2D(空间)或 3D(体积)数据进行上采样。 |
|
对由多个输入通道组成的输入信号应用 2D 最近邻上采样。 |
|
对由多个输入通道组成的输入信号应用 2D 双线性上采样。 |
混洗层
将张量中的通道分割并重新排列。 |
数据并行层(多 GPU,分布式)
在模块级别实现数据并行性。 |
|
基于模块级别实现基于 |
工具程序 §
来自 torch.nn.utils
模块:
参数梯度裁剪的实用函数。
裁剪参数迭代器的梯度范数。 |
|
裁剪参数迭代器的梯度范数。 |
|
在指定值处裁剪参数迭代器的梯度。 |
|
计算张量序列的范数。 |
|
根据预计算的范数和期望的最大范数,缩放参数序列的梯度。 |
提供将模块参数从单个向量到单个向量以及从单个向量到张量序列的展开和还原的实用函数。
将参数序列展开成一个单一向量。 |
|
将向量的切片复制到参数的可迭代对象中。 |
用于将模块与 BatchNorm 模块融合的实用函数。
将卷积模块和 BatchNorm 模块融合成一个全新的卷积模块。 |
|
将卷积模块参数和 BatchNorm 模块参数融合成新的卷积模块参数。 |
|
将线性模块和 BatchNorm 模块融合成一个全新的线性模块。 |
|
将线性模块参数和 BatchNorm 模块参数融合成新的线性模块参数。 |
用于转换模块参数内存格式的实用函数。
将 |
|
将 |
用于应用和移除模块参数权重归一化的实用函数。
在给定的模块中应用参数的权重归一化。 |
|
从模块中移除权重归一化的重新参数化。 |
|
将频谱归一化应用于给定模块中的参数。 |
|
从模块中移除频谱归一化的重新参数化。 |
初始化 Module 参数的实用函数。
给定模块类对象和 args/kwargs,实例化模块而不初始化参数/缓冲区。 |
用于修剪模块参数的实用类和函数。
用于创建新修剪技术的抽象基类。 |
|
包含一系列修剪方法的容器,用于迭代修剪。 |
|
不修剪任何单元的实用修剪方法,但生成由全 1 组成的修剪参数化掩码。 |
|
随机剪枝张量中的(当前未剪枝)单元。 |
|
通过将具有最低 L1 范数的单元置零来剪枝张量中的(当前未剪枝)单元。 |
|
随机剪枝张量中的(当前未剪枝)整个通道。 |
|
根据它们的 L |
|
无需剪枝任何单元,应用剪枝重参数化。 |
|
通过移除随机(当前未剪枝)单元来剪枝张量。 |
|
通过移除具有最低 L1 范数的单元来剪枝张量。 |
|
沿指定维度移除随机通道来剪枝张量。 |
|
通过移除指定维度上 L |
|
对 |
|
通过应用预计算的掩码 |
|
从模块中移除修剪重参数化,从前向钩子中移除修剪方法。 |
|
检查模块是否被剪枝,可以通过查找剪枝前钩子来实现。 |
使用新参数化功能在 torch.nn.utils.parameterize.register_parametrization()
中实现参数化。
将正交或单位参数化应用于矩阵或矩阵批。 |
|
将权重归一化应用于给定模块中的参数。 |
|
将频谱归一化应用于给定模块中的参数。 |
用于在现有模块上参数化张量的实用函数。请注意,这些函数可以用于在给定的从输入空间映射到参数化空间的特定函数的情况下,参数化给定的参数或缓冲区。它们不是将对象转换为参数的参数化。有关如何实现自己的参数化的更多信息,请参阅参数化教程。
将参数化注册到模块中的张量。 |
|
删除模块中张量的参数化。 |
|
允许在注册的参数化中启用缓存系统的上下文管理器。 |
|
判断一个模块是否有参数化。 |
一个顺序容器,用于持有和管理参数化的原始参数或缓冲区。 |
以无状态方式调用给定模块的实用函数。
通过替换模块参数和缓冲区,对模块进行功能调用。 |
其他模块中的实用函数。
存储打包序列的数据和 |
|
打包包含可变长度填充序列的张量。 |
|
补齐一串长度可变的序列。 |
|
使用 |
|
打包长度可变的张量列表。 |
|
将打包的 PackedSequence 解包成长度可变的张量列表。 |
|
将填充的 Tensor 填充成一个变长 Tensor 的列表。 |
将连续维度的范围展平成一个张量。 |
|
将张量维度展开到期望的形状。 |
量化函数 ¶
量化是指执行计算和存储张量时使用低于浮点精度位宽的技术。PyTorch 支持按张量和对称线性量化。要了解如何在 PyTorch 中使用量化函数,请参阅量化文档。
懒加载模块初始化
用于懒加载参数的模块混入,也称为“懒加载模块”。 |
别名
以下是对 torch.nn
中对应项的别名:
对输入的小批量应用均方根层归一化。 |