Pytorch Layer层总结

卷积层

nn.Conv1d 对由多个输入平面组成的输入信号应用一维卷积。
nn.Conv2d 在由多个输入平面组成的输入信号上应用 2D 卷积。
nn.Conv3d 对由多个输入平面组成的输入信号应用 3D 卷积。
nn.ConvTranspose1d 在由多个输入平面组成的输入图像上应用一维转置卷积算子。
nn.ConvTranspose2d 在由多个输入平面组成的输入图像上应用 2D 转置卷积算子。
nn.ConvTranspose3d 在由多个输入平面组成的输入图像上应用 3D 转置卷积算子。
nn.LazyConv1d 从. torch.nn.Conv1d_ in_channels_ Conv1d_input.size(1)
nn.LazyConv2d 从. torch.nn.Conv2d_ in_channels_ Conv2d_input.size(1)
nn.LazyConv3d 从. torch.nn.Conv3d_ in_channels_ Conv3d_input.size(1)
nn.LazyConvTranspose1d 从. torch.nn.ConvTranspose1d_ in_channels_ ConvTranspose1d_input.size(1)
nn.LazyConvTranspose2d 从. torch.nn.ConvTranspose2d_ in_channels_ ConvTranspose2d_input.size(1)
nn.LazyConvTranspose3d 从. torch.nn.ConvTranspose3d_ in_channels_ ConvTranspose3d_input.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 在由多个输入平面组成的输入信号上应用一维平均池化。
nn.AvgPool2d 在由多个输入平面组成的输入信号上应用 2D 平均池化。
nn.AvgPool3d 在由多个输入平面组成的输入信号上应用 3D 平均池化。
nn.FractionalMaxPool2d 在由多个输入平面组成的输入信号上应用 2D 分数最大池化。
nn.FractionalMaxPool3d 在由多个输入平面组成的输入信号上应用 3D 分数最大池化。
nn.LPPool1d 在由多个输入平面组成的输入信号上应用一维功率平均池化。
nn.LPPool2d 在由多个输入平面组成的输入信号上应用 2D 功率平均池化。
nn.AdaptiveMaxPool1d 在由多个输入平面组成的输入信号上应用 1D 自适应最大池化。
nn.AdaptiveMaxPool2d 在由多个输入平面组成的输入信号上应用 2D 自适应最大池化。
nn.AdaptiveMaxPool3d 在由多个输入平面组成的输入信号上应用 3D 自适应最大池化。
nn.AdaptiveAvgPool1d 在由多个输入平面组成的输入信号上应用一维自适应平均池化。
nn.AdaptiveAvgPool2d 在由多个输入平面组成的输入信号上应用 2D 自适应平均池化。
nn.AdaptiveAvgPool3d 在由多个输入平面组成的输入信号上应用 3D 自适应平均池化。

填充层

nn.ReflectionPad1d 使用输入边界的反射填充输入张量。
nn.ReflectionPad2d 使用输入边界的反射填充输入张量。
nn.ReflectionPad3d 使用输入边界的反射填充输入张量。
nn.ReplicationPad1d 使用输入边界的复制填充输入张量。
nn.ReplicationPad2d 使用输入边界的复制填充输入张量。
nn.ReplicationPad3d 使用输入边界的复制填充输入张量。
nn.ZeroPad2d 用零填充输入张量边界。
nn.ConstantPad1d 用一个常数值填充输入张量边界。
nn.ConstantPad2d 用一个常数值填充输入张量边界。
nn.ConstantPad3d 用一个常数值填充输入张量边界。

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

nn.ELU 如论文所述,按元素应用指数线性单元 (ELU) 函数:通过指数线性单元 (ELU) 进行快速和准确的深度网络学习
nn.Hardshrink 按元素应用硬收缩 (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 应用高斯误差线性单位函数:
nn.Sigmoid 应用逐元素函数:
nn.SiLU 逐元素应用 Sigmoid 线性单元 (SiLU) 函数。
nn.Mish 逐元素应用 Mish 函数。
nn.Softplus 应用 Softplus 功能\text{Softplus}(x) = \frac{1}{\beta} * \log(1 + \exp(\beta * x))软加( x )=β1日志( 1 _+exp ( βx ))元素方面。
nn.Softshrink 逐元素应用软收缩函数:
nn.Softsign 应用逐元素函数:
nn.Tanh 逐元素应用双曲正切 (Tanh) 函数。
nn.Tanhshrink 应用逐元素函数:
nn.Threshold 阈值输入张量的每个元素。
nn.GLU 应用门控线性单元函数{GLU}(a, b)= a \otimes \sigma(b)葛卢(, _**b )=一种σ ( b )在哪里一种一种是输入矩阵的前半部分,并且bb是下半场。

非线性激活(其他)

nn.Softmin 将 Softmin 函数应用于 n 维输入 Tensor 重新缩放它们,以便 n 维输出 Tensor 的元素位于[0, 1]范围内并且总和为 1。
nn.Softmax 将 Softmax 函数应用于 n 维输入张量,重新缩放它们,使 n 维输出张量的元素位于 [0,1] 范围内并且总和为 1。
nn.Softmax2d 将 SoftMax 应用于每个空间位置的特征。
nn.LogSoftmax 应用\log(\text{Softmax}(x))日志( Softmax ( x ) )函数到 n 维输入张量。
nn.AdaptiveLogSoftmaxWithLoss Efficient softmax approximation 如Edouard Grave、Armand Joulin、Moustapha Cissé、David Grangier 和 Hervé Jégou 在 GPU 的 Efficient softmax approximation 中所述。

规范化层

nn.BatchNorm1d 如论文Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift中所述,在 2D 或 3D 输入上应用 Batch Normalization 。
nn.BatchNorm2d 如论文Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift中所述,在 4D 输入(具有附加通道维度的小批量 2D 输入)上应用Batch Normalization 。
nn.BatchNorm3d 如论文Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift中所述,在 5D 输入(具有额外通道维度的小批量 3D 输入)上应用Batch Normalization 。
nn.LazyBatchNorm1d 从. torch.nn.BatchNorm1d_ num_features_ BatchNorm1d_input.size(1)
nn.LazyBatchNorm2d 从. torch.nn.BatchNorm2d_ num_features_ BatchNorm2d_input.size(1)
nn.LazyBatchNorm3d 从. torch.nn.BatchNorm3d_ num_features_ BatchNorm3d_input.size(1)
nn.GroupNorm 如论文Group Normalization中所述,在小批量输入上应用Group Normalization
nn.SyncBatchNorm 如论文Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift中所述,在 N 维输入(具有额外通道维度的 [N-2]D 输入的小批量)上应用Batch Normalization 。
nn.InstanceNorm1d 如论文Instance Normalization: The Missing Ingredient for Fast Stylization中所述,在 2D(未批量)或 3D(批量)输入上应用实例规范化。
nn.InstanceNorm2d 如论文Instance Normalization: The Missing Ingredient for Fast Stylization中所述,在 4D 输入(具有附加通道维度的小批量 2D 输入)上应用实例标准化。
nn.InstanceNorm3d 如论文Instance Normalization: The Missing Ingredient for Fast Stylization中所述,在 5D 输入(具有附加通道维度的小批量 3D 输入)上应用实例标准化。
nn.LazyInstanceNorm1d 从. torch.nn.InstanceNorm1d_ num_features_ InstanceNorm1d_input.size(1)
nn.LazyInstanceNorm2d 从. torch.nn.InstanceNorm2d_ num_features_ InstanceNorm2d_input.size(1)
nn.LazyInstanceNorm3d 从. torch.nn.InstanceNorm3d_ num_features_ InstanceNorm3d_input.size(1)
nn.LayerNorm 对小批量输入应用层归一化,如层归一化论文中所述
nn.LocalResponseNorm 对由多个输入平面组成的输入信号应用局部响应归一化,其中通道占据第二维。

nn.RNNBase循环层

nn.RNNBase
nn.RNN 应用多层 Elman RNN\tanh谭要么\文本{ReLU}ReLU输入序列的非线性。
nn.LSTM 将多层长短期记忆 (LSTM) RNN 应用于输入序列。
nn.GRU 将多层门控循环单元 (GRU) RNN 应用于输入序列。
nn.RNNCell 具有 tanh 或 ReLU 非线性的 Elman RNN 单元。
nn.LSTMCell 长短期记忆 (LSTM) 细胞。
nn.GRUCell 门控循环单元 (GRU) 单元

nn.Transformer

nn.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 = xA^T + b是的=一个_+b
nn.Bilinear 对输入数据应用双线性变换:y = x_1^TA x_2 + b是的=X1一个_2+b
nn.LazyLinear 推断in_features的torch.nn.Linear模块。

Dropout层

nn.Dropout p在训练期间,使用来自伯努利分布的样本以概率将输入张量的一些元素随机归零。
nn.Dropout2d 将整个通道随机归零(通道是 2D 特征图,例如,jj-第一个频道一世一世- 批处理输入中的第一个样本是 2D 张量\文本{输入}[i, j]输入[,Ĵ ])。
nn.Dropout3d 将整个通道随机归零(通道是 3D 特征图,例如,jj-第一个频道一世一世- 批处理输入中的第一个样本是一个 3D 张量\文本{输入}[i, j]输入[,Ĵ ])。
nn.AlphaDropout 在输入上应用 Alpha Dropout。
nn.FeatureAlphaDropout 随机屏蔽整个通道(通道是特征图,例如

稀疏层

nn.Embedding 一个简单的查找表,用于存储固定字典和大小的嵌入。
nn.EmbeddingBag 计算嵌入“包”的总和或均值,而不实例化中间嵌入。

视觉层

nn.PixelShuffle 重新排列形状张量中的元素(, C \times r^2, H, W)( * ,C×r2,,* _) 到一个形状张量(*, C, H \times r, W \times r)( * ,, ***H×r* ,W×r ), 其中 r 是一个高档因子。
nn.PixelUnshuffle PixelShuffle通过重新排列形状张量中的元素来反转操作(, C, H \times r, W \times r)( * ,, _**H×r* ,W×r )到一个形状张量(, C \times r^2, H, W)( * ,C×r2,,* _) _, 其中 r 是一个缩小因子。
nn.Upsample 对给定的多通道 1D(时间)、2D(空间)或 3D(体积)数据进行上采样。
nn.UpsamplingNearest2d 对由多个输入通道组成的输入信号应用 2D 最近邻上采样。
nn.UpsamplingBilinear2d 对由多个输入通道组成的输入信号应用 2D 双线性上采样。

洗牌层

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

DataParallel 层(多 GPU,分布式)

nn.DataParallel 在模块级别实现数据并行。
nn.parallel.DistributedDataParallel torch.distributed在模块级别实现基于包的分布式数据并行性。
posted @ 2022-03-23 20:57  Xu_Lin  阅读(398)  评论(0编辑  收藏  举报