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.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 在模块级别实现基于包的分布式数据并行性。 |
Talk is cheap. Show me the code