目录

torch.nn

以下是图形的基本构建块:

Parameter

一种 Tensor,将被视为 module 参数。

UninitializedParameter

未初始化的参数。

UninitializedBuffer

未初始化的缓冲区。

器皿

Module

所有神经网络模块的基类。

Sequential

顺序容器。

ModuleList

将子模块保存在列表中。

ModuleDict

在字典中保存子模块。

ParameterList

在列表中保存参数。

ParameterDict

在字典中保存参数。

Module 的全局钩子

register_module_forward_pre_hook

注册所有 modules 通用的正向 pre-hook。

register_module_forward_hook

为所有模块注册一个全局 forward hook

register_module_backward_hook

注册所有模块共有的向后钩子。

register_module_full_backward_hook

注册所有模块共有的向后钩子。

卷积层

nn.Conv1d

将 1D 卷积应用于由多个输入平面组成的输入信号。

nn.Conv2d

将 2D 卷积应用于由多个输入平面组成的输入信号。

nn.Conv3d

在由多个输入平面组成的输入信号上应用 3D 卷积。

nn.ConvTranspose1d

将 1D 转置卷积运算符应用于由多个输入平面组成的输入图像。

nn.ConvTranspose2d

将 2D 转置卷积运算符应用于由多个输入平面组成的输入图像。

nn.ConvTranspose3d

将 3D 转置卷积运算符应用于由多个输入平面组成的输入图像。

nn.LazyConv1d

一个torch.nn.Conv1dmodule 的 it 的参数的延迟初始化是从 .in_channelsConv1dinput.size(1)

nn.LazyConv2d

一个torch.nn.Conv2dmodule 的 it 的参数的延迟初始化是从 .in_channelsConv2dinput.size(1)

nn.LazyConv3d

一个torch.nn.Conv3dmodule 的 it 的参数的延迟初始化是从 .in_channelsConv3dinput.size(1)

nn.LazyConvTranspose1d

一个torch.nn.ConvTranspose1dmodule 的 it 的参数的延迟初始化是从 .in_channelsConvTranspose1dinput.size(1)

nn.LazyConvTranspose2d

一个torch.nn.ConvTranspose2dmodule 的 it 的参数的延迟初始化是从 .in_channelsConvTranspose2dinput.size(1)

nn.LazyConvTranspose3d

一个torch.nn.ConvTranspose3dmodule 的 it 的参数的延迟初始化是从 .in_channelsConvTranspose3dinput.size(1)

nn.Unfold

从批处理的输入张量中提取滑动局部块。

nn.Fold

将一组滑动的局部块组合成一个大的包含张量。

池化层

nn.MaxPool1d

在由多个输入平面组成的输入信号上应用 1D 最大池化。

nn.MaxPool2d

在由多个输入平面组成的输入信号上应用 2D 最大池化。

nn.MaxPool3d

在由多个输入平面组成的输入信号上应用 3D 最大池化。

nn.MaxUnpool1d

计算 的偏逆 。MaxPool1d

nn.MaxUnpool2d

计算 的偏逆 。MaxPool2d

nn.MaxUnpool3d

计算 的偏逆 。MaxPool3d

nn.AvgPool1d

在由多个输入平面组成的输入信号上应用 1D 平均池化。

nn.AvgPool2d

在由多个输入平面组成的输入信号上应用 2D 平均池化。

nn.AvgPool3d

在由多个输入平面组成的输入信号上应用 3D 平均池化。

nn.FractionalMaxPool2d

在由多个输入平面组成的输入信号上应用 2D 分数最大池化。

nn.FractionalMaxPool3d

在由多个输入平面组成的输入信号上应用 3D 分数最大池化。

nn.LPPool1d

在由多个输入平面组成的输入信号上应用 1D 功率平均池化。

nn.LPPool2d

在由多个输入平面组成的输入信号上应用 2D 功率平均池。

nn.AdaptiveMaxPool1d

在由多个输入平面组成的输入信号上应用 1D 自适应最大池化。

nn.AdaptiveMaxPool2d

在由多个输入平面组成的输入信号上应用 2D 自适应最大池化。

nn.AdaptiveMaxPool3d

在由多个输入平面组成的输入信号上应用 3D 自适应最大池化。

nn.AdaptiveAvgPool1d

在由多个输入平面组成的输入信号上应用 1D 自适应平均池化。

nn.AdaptiveAvgPool2d

在由多个输入平面组成的输入信号上应用 2D 自适应平均池化。

nn.AdaptiveAvgPool3d

在由多个输入平面组成的输入信号上应用 3D 自适应平均池化。

填充层

nn.ReflectionPad1d

使用输入边界的反射填充输入张量。

nn.ReflectionPad2d

使用输入边界的反射填充输入张量。

nn.ReflectionPad3d

使用输入边界的反射填充输入张量。

nn.ReplicationPad1d

使用输入边界的复制填充输入张量。

nn.ReplicationPad2d

使用输入边界的复制填充输入张量。

nn.ReplicationPad3d

使用输入边界的复制填充输入张量。

nn.ZeroPad2d

用零填充 input tensor 边界。

nn.ConstantPad1d

用常量值填充输入张量边界。

nn.ConstantPad2d

用常量值填充输入张量边界。

nn.ConstantPad3d

用常量值填充输入张量边界。

非线性激活 (加权和、非线性)

nn.ELU

按元素应用指数线性单元 (ELU) 函数,如论文中所述:通过指数线性单元 (ELU) 进行快速准确的深度网络学习

nn.Hardshrink

按元素应用 Hard Shrinkage (Hardshrink) 功能。

nn.Hardsigmoid

按元素应用 Hardsigmoid 函数。

nn.Hardtanh

按元素应用 HardTanh 函数。

nn.Hardswish

按元素应用 hardswish 函数,如论文中所述:

nn.LeakyReLU

应用元素级函数:

nn.LogSigmoid

应用元素级函数:

nn.MultiheadAttention

允许模型共同关注来自不同表示子空间的信息,如论文中所述:Attention Is All You Need

nn.PReLU

应用元素级函数:

nn.ReLU

按元素应用修正的线性单元函数:

nn.ReLU6

应用元素级函数:

nn.RReLU

按元素应用随机泄漏整流衬垫单元函数,如论文中所述:

nn.SELU

按元素应用,如下所示:

nn.CELU

应用元素级函数:

nn.GELU

应用 Gaussian Error Linear Units 函数:

nn.Sigmoid

应用元素级函数:

nn.SiLU

按元素应用 Sigmoid 线性单元 (SiLU) 功能。

nn.Mish

按元素应用 Mish 函数。

nn.Softplus

应用 Softplus 函数软加(x)=1β日志(1+exp (英文)(βx))\text{Softplus}(x) = \frac{1}{\beta} * \log(1 + \exp(\beta * x))元素。

nn.Softshrink

按元素应用软收缩函数:

nn.Softsign

应用元素级函数:

nn.Tanh

按元素应用 Hyperbolic Chung (Tanh) 函数。

nn.Tanhshrink

应用元素级函数:

nn.Threshold

对输入 Tensor 的每个元素进行阈值设置。

nn.GLU

应用门控线性单元功能GLU(一个,b)=一个σ(b){GLU}(a, b)= a \otimes \sigma(b)哪里一个a是输入矩阵的前半部分,而bb是下半场。

非线性激活 (其他)

nn.Softmin

将 Softmin 函数应用于 n 维输入 Tensor,重新缩放它们,使 n 维输出 Tensor 的元素位于 [0, 1] 范围内,总和为 1。

nn.Softmax

将 Softmax 函数应用于 n 维输入 Tensor,重新缩放它们,以便 n 维输出 Tensor 的元素位于 [0,1] 范围内,总和为 1。

nn.Softmax2d

将 SoftMax 应用于每个空间位置的特征。

nn.LogSoftmax

应用日志(Softmax(x))\log(\text{Softmax}(x))函数转换为 n 维输入 Tensor。

nn.AdaptiveLogSoftmaxWithLoss

Edouard Grave、Armand Joulin、Moustapha Cissé、David Grangier 和 Hervé Jégou 在 GPU 的高效 softmax 近似中所述的高效 softmax 近似。

归一化图层

nn.BatchNorm1d

对 2D 或 3D 输入应用批量归一化,如论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中所述。

nn.BatchNorm2d

对 4D 输入(具有附加通道维度的 2D 输入的小批量)应用批量归一化,如论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中所述

nn.BatchNorm3d

对 5D 输入(具有附加通道维度的 3D 输入的小批量)应用批量归一化,如论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中所述。

nn.LazyBatchNorm1d

一个torch.nn.BatchNorm1dmodule 的 it 的参数的延迟初始化是从 .num_featuresBatchNorm1dinput.size(1)

nn.LazyBatchNorm2d

一个torch.nn.BatchNorm2dmodule 的 it 的参数的延迟初始化是从 .num_featuresBatchNorm2dinput.size(1)

nn.LazyBatchNorm3d

一个torch.nn.BatchNorm3dmodule 的 it 的参数的延迟初始化是从 .num_featuresBatchNorm3dinput.size(1)

nn.GroupNorm

对一小批输入应用组归一化,如论文组归一化中所述

nn.SyncBatchNorm

对 N 维输入(具有附加通道维度的 [N-2]D 输入的小批量)应用批量归一化,如论文 Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 中所述

nn.InstanceNorm1d

将实例标准化应用于 2D(未批处理)或 3D(批处理)输入,如论文实例标准化:快速样式化的缺失成分中所述。

nn.InstanceNorm2d

将实例标准化应用于 4D 输入(具有附加通道维度的 2D 输入的小批量),如论文实例标准化:快速风格化的缺失成分中所述。

nn.InstanceNorm3d

将实例标准化应用于 5D 输入(具有附加通道维度的 3D 输入的小批量),如论文实例标准化:快速风格化的缺失成分中所述。

nn.LazyInstanceNorm1d

一个torch.nn.InstanceNorm1dmodule 的 it 的参数的延迟初始化是从 .num_featuresInstanceNorm1dinput.size(1)

nn.LazyInstanceNorm2d

一个torch.nn.InstanceNorm2dmodule 的 it 的参数的延迟初始化是从 .num_featuresInstanceNorm2dinput.size(1)

nn.LazyInstanceNorm3d

一个torch.nn.InstanceNorm3dmodule 的 it 的参数的延迟初始化是从 .num_featuresInstanceNorm3dinput.size(1)

nn.LayerNorm

对一小批输入应用图层归一化,如论文图层归一化中所述

nn.LocalResponseNorm

对由多个输入平面组成的输入信号应用局部响应归一化,其中声道占据第二个维度。

循环层

nn.RNNBase

nn.RNN

应用多层 Elman RNN\tanhReLU 系列\text{ReLU}nonlinearity 到 input 序列。

nn.LSTM

将多层长短期记忆 (LSTM) RNN 应用于输入序列。

nn.GRU

将多层门控循环单元 (GRU) RNN 应用于输入序列。

nn.RNNCell

具有 tanh 或 ReLU 非线性的 Elman RNN 单元。

nn.LSTMCell

较长的短期记忆 (LSTM) 单元。

nn.GRUCell

门控循环单元 (GRU) 单元

变压器层

nn.Transformer

transformer 模型。

nn.TransformerEncoder

TransformerEncoder 是 N 个编码器层的堆栈

nn.TransformerDecoder

TransformerDecoder 是 N 个解码器层的堆栈

nn.TransformerEncoderLayer

TransformerEncoderLayer 由 self-attn 和前馈网络组成。

nn.TransformerDecoderLayer

TransformerDecoderLayer 由 self-attn、multi-head-attn 和前馈网络组成。

线性层

nn.Identity

不区分参数的占位符标识运算符。

nn.Linear

对传入数据应用线性转换:y=x一个T+by = xA^T + b

nn.Bilinear

将双线性变换应用于传入数据:y=x1T一个x2+by = x_1^T A x_2 + b

nn.LazyLinear

一个torch.nn.Linear模块,其中推断in_features

Dropout 图层

nn.Dropout

在训练期间,使用伯努利分布中的样本以概率随机将输入张量的某些元素随机归零。p

nn.Dropout1d

将整个通道随机归零(通道是 1D 特征图,例如jj-th 通道的i-batch input 中的第 -th 样本是 1D 张量输入[,j]\text{input}[i, j]).

nn.Dropout2d

将整个 channel 随机归零(channel 是一个 2D 特征图,例如jj-th 通道的i-batch input 中的第 -th 个样本是 2D 张量输入[,j]\text{input}[i, j]).

nn.Dropout3d

将整个通道随机归零(通道是一个 3D 特征图,例如jj-th 通道的i-batch input 中的第 -th 个样本是 3D 张量输入[,j]\text{input}[i, j]).

nn.AlphaDropout

将 Alpha Dropout 应用于输入。

nn.FeatureAlphaDropout

随机屏蔽整个通道(通道是一个特征图,例如

稀疏层

nn.Embedding

一个简单的查找表,用于存储固定字典和大小的嵌入。

nn.EmbeddingBag

计算嵌入的 'bags' 的总和或平均值,而不实例化中间嵌入。

距离函数

nn.CosineSimilarity

返回 之间的余弦相似度x1x_1x2x_2,沿 dim 计算。

nn.PairwiseDistance

计算向量之间的成对距离v1v_1,v2v_2使用 p-norm:

损失函数

nn.L1Loss

创建一个标准,用于测量输入中每个元素之间的平均绝对误差 (MAE)xx和目标yy.

nn.MSELoss

创建一个标准,用于测量输入中每个元素之间的均方误差(平方 L2 范数)xx和目标yy.

nn.CrossEntropyLoss

此准则计算 input 和 target 之间的交叉熵损失。

nn.CTCLoss

Connectionist Temporal Classification 损失。

nn.NLLLoss

负对数似然损失。

nn.PoissonNLLLoss

目标泊松分布的负对数似然损失。

nn.GaussianNLLLoss

高斯负对数似然损失。

nn.KLDivLoss

Kullback-Leibler 背离损失。

nn.BCELoss

创建一个标准,用于测量目标概率和输入概率之间的二进制交叉熵:

nn.BCEWithLogitsLoss

这种损失将 Sigmoid 层和 BCELoss 组合在一个类中。

nn.MarginRankingLoss

创建一个标准来衡量给定输入的损失x1x1,x2x2、两个 1D 小批量或 0D 张量,以及一个标签 1D 小批量或 0D 张量 yy(包含 1 或 -1)。

nn.HingeEmbeddingLoss

测量给定输入张量的损失xx和一个 labels 张量yy(包含 1 或 -1)。

nn.MultiLabelMarginLoss

创建一个标准,用于优化输入之间的多类多分类铰链损失(基于边际的损失)xx(一个 2D 小批量 Tensor)和输出yy(这是目标类索引的 2D 张量)。

nn.HuberLoss

创建一个条件,如果绝对元素误差低于 delta,则使用平方项,否则使用 delta 缩放的 L1 项。

nn.SmoothL1Loss

创建一个标准,如果绝对元素误差低于 beta,则使用平方项,否则使用 L1 项。

nn.SoftMarginLoss

创建一个标准,用于优化输入张量之间的两类分类 logistic lossxx和目标张量yy(包含 1 或 -1)。

nn.MultiLabelSoftMarginLoss

创建一个标准,该标准根据输入之间的最大熵优化多标签一对多损失xx和目标yy大小(N,C)(N, C).

nn.CosineEmbeddingLoss

创建一个标准来测量给定输入张量的损失x1x_1,x2x_2和一个 Tensor 标签yy值为 1 或 -1。

nn.MultiMarginLoss

创建一个标准,用于优化输入之间的多类分类铰链损失(基于边际的损失)xx(一个 2D 小批量 Tensor)和输出yy(这是目标类索引的 1D 张量,0yx.size (大小)(1)10 \leq y \leq \text{x.size}(1)-1):

nn.TripletMarginLoss

创建一个标准,用于测量给定输入张量的三元组损失x1x1,x2x2,x3x3以及值大于00.

nn.TripletMarginWithDistanceLoss

创建一个标准,用于测量给定输入张量的三元组损失一个a,ppnn(分别表示锚点、正例和负例)和用于计算锚点和正例(“正距离”)和锚点和负例(“负距离”)之间的关系的非负实值函数(“距离函数”)。

Vision Layers

nn.PixelShuffle

在 shape 为(,C×r2,H,W)(*, C \times r^2, H, W)转换为 shape 为(,C,H×r,W×r)(*, C, H \times r, W \times r),其中 r 是放大因子。

nn.PixelUnshuffle

反转PixelShuffle通过重新排列 shape 为(,C,H×r,W×r)(*, C, H \times r, W \times r)转换为 shape 为(,C×r2,H,W)(*, C \times r^2, H, W),其中 r 是缩小因子。

nn.Upsample

对给定的多通道 1D(时间)、2D(空间)或 3D(体积)数据进行上采样。

nn.UpsamplingNearest2d

将 2D 最近邻上采样应用于由多个输入通道组成的输入信号。

nn.UpsamplingBilinear2d

将 2D 双线性上采样应用于由多个输入通道组成的输入信号。

随机排列图层

nn.ChannelShuffle

将通道划分为 shape 的张量(,C,H,W)(*, C , H, W)划分为 G 组并将它们重新排列为(,Cg,g,H,W)(*, C \frac g, g, H, W),同时保持原始张量形状。

DataParallel Layers(多 GPU,分布式)

nn.DataParallel

在模块级别实现数据并行。

nn.parallel.DistributedDataParallel

在模块级别实现基于 package 的分布式数据并行。torch.distributed

公用事业

从模块torch.nn.utils

clip_grad_norm_

剪辑参数可迭代对象的梯度范数。

clip_grad_value_

以指定值剪辑参数可迭代对象的渐变。

parameters_to_vector

将参数转换为一个向量

vector_to_parameters

将一个向量转换为参数

prune.BasePruningMethod

用于创建新修剪技术的抽象基类。

prune.PruningContainer

Container 包含一系列用于迭代修剪的修剪方法。

prune.Identity

实用程序修剪方法,不修剪任何单元,但生成带有 1 掩码的修剪参数化。

prune.RandomUnstructured

随机修剪张量中的(当前未修剪)单元。

prune.L1Unstructured

通过将具有最低 L1 范数的单元归零来修剪张量中的单元(当前未修剪)。

prune.RandomStructured

随机修剪张量中的整个(当前未修剪)通道。

prune.LnStructured

根据 L-norm 修剪张量中的整个(当前未修剪)通道。n

prune.CustomFromMask

prune.identity

将修剪重新参数化应用于与调用的参数对应的张量,而不实际修剪任何单位。namemodule

prune.random_unstructured

通过删除随机选择的指定(当前未修剪)单元,修剪与调用的参数对应的张量。namemoduleamount

prune.l1_unstructured

通过删除具有最低 L1 范数的指定数量的(当前未修剪的)单元,修剪与调用的参数对应的张量。namemodule

prune.random_structured

通过沿指定的 selected 随机删除指定的 of (当前未修剪的) 通道,修剪与调用的参数对应的张量。namemoduleamountdim

prune.ln_structured

通过沿指定的最低 L 范数删除指定的(当前未修剪的)通道,修剪与调用的参数对应的张量。namemoduleamountdimn

prune.global_unstructured

通过应用指定的 .parameterspruning_method

prune.custom_from_mask

通过在 中应用预先计算的掩码来修剪与调用的参数相对应的张量。namemodulemask

prune.remove

从模块中删除 pruning 重新参数化,从 forward 钩子中删除 pruning 方法。

prune.is_pruned

通过在继承自 .moduleforward_pre_hooksBasePruningMethod

weight_norm

将权重标准化应用于给定模块中的参数。

remove_weight_norm

从模块中删除权重规范化重新参数化。

spectral_norm

将频谱归一化应用于给定模块中的参数。

remove_spectral_norm

从模块中删除光谱归一化重新参数化。

skip_init

给定一个模块类 object 和 args / kwargs,在不初始化参数/缓冲区的情况下实例化模块。

使用新的参数化功能实现参数化 在。torch.nn.utils.parameterize.register_parametrization()

parametrizations.orthogonal

将正交或酉参数化应用于矩阵或一批矩阵。

parametrizations.spectral_norm

将频谱归一化应用于给定模块中的参数。

用于在现有 Module 上参数化 Tensor 的实用函数。 请注意,这些函数可用于参数化给定的 Parameter 或 Buffer 给定一个特定函数,该函数从输入空间映射到 参数化空间。它们不是会转换的参数化 将对象转换为参数。有关如何实现自己的参数化的更多信息,请参阅 Parametrizations 教程

parametrize.register_parametrization

向模块中的张量添加参数化。

parametrize.remove_parametrizations

删除模块中张量的参数化。

parametrize.cached

上下文管理器,该管理器在 注册到 的参数化中启用缓存系统。register_parametrization()

parametrize.is_parametrized

如果 module 具有活动的参数化,则返回。True

parametrize.ParametrizationList

一个顺序容器,用于保存和管理 or 、 、 。originaloriginal0original1

Utility 函数以无状态方式调用给定的 Module。

stateless.functional_call

通过将模块参数和缓冲区替换为提供的参数和缓冲区,对模块执行功能调用。

其他模块中的实用函数

nn.utils.rnn.PackedSequence

保存打包序列的数据和列表。batch_sizes

nn.utils.rnn.pack_padded_sequence

打包一个包含可变长度的填充序列的 Tensor。

nn.utils.rnn.pad_packed_sequence

填充一批可变长度序列的打包批次。

nn.utils.rnn.pad_sequence

padding_value

nn.utils.rnn.pack_sequence

打包可变长度 Tensor 的列表

nn.Flatten

将连续范围的 dim 展平为张量。

nn.Unflatten

展开 tensor dim 并将其扩展为所需的形状。

量化函数

量化是指以低于 浮点精度。PyTorch 支持每张量和每通道非对称线性量化。要了解有关如何在 PyTorch 中使用量化函数的更多信息,请参阅量化文档

惰性模块初始化

nn.modules.lazy.LazyModuleMixin

一个用于延迟初始化参数的模块的 mixin,也称为 “lazy modules”。

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源