好的 👍
torch.nn 里面确实包含了很多常用的神经网络模块,你可以把它们理解为深度学习中各种“积木”,主要分为 层(layers)、容器(containers) 和 正则化/损失函数 等几个类别。
下面我给你整理一份 值得学习的网络层/模块清单(重点是 nn 里面和建模相关的):
🔹 1. 基础层(Linear & Embedding)
nn.Linear—— 全连接层(MLP 基础积木)nn.Bilinear—— 双线性层nn.Embedding—— 词嵌入层nn.EmbeddingBag—— 变体,适合处理词袋模型
🔹 2. 卷积层(Convolution Layers)
nn.Conv1d—— 一维卷积(常用于 NLP、语音)nn.Conv2d—— 二维卷积(图像处理最常用)nn.Conv3d—— 三维卷积(视频、体数据)nn.ConvTranspose1d/2d/3d—— 反卷积(上采样/生成模型常用)
🔹 3. 池化层(Pooling)
nn.MaxPool1d/2d/3d—— 最大池化nn.AvgPool1d/2d/3d—— 平均池化nn.AdaptiveMaxPool1d/2d/3d—— 自适应池化(固定输出大小)nn.AdaptiveAvgPool1d/2d/3d—— 自适应平均池化
🔹 4. 循环神经网络层(RNN 系列)
nn.RNN—— 基础循环网络nn.LSTM—— 长短期记忆网络nn.GRU—— 门控循环单元
🔹 5. Transformer 相关
nn.MultiheadAttention—— 多头注意力机制nn.Transformer—— 整个 Transformer 模型(包含编码器+解码器)nn.TransformerEncoder/nn.TransformerDecodernn.TransformerEncoderLayer/nn.TransformerDecoderLayer
🔹 6. 归一化(Normalization)
nn.BatchNorm1d/2d/3d—— 批量归一化nn.LayerNorm—— 层归一化(Transformer 常用)nn.GroupNorm—— 分组归一化nn.InstanceNorm1d/2d/3d—— 实例归一化(风格迁移常用)nn.LocalResponseNorm—— 局部响应归一化(早期 CNN)
🔹 7. Dropout & 正则化
nn.Dropout—— 全连接层 Dropoutnn.Dropout2d/3d—— 用于卷积层的 Dropoutnn.AlphaDropout—— 用于 SELU 激活的变体
🔹 8. 激活函数(很多都在 torch.nn.functional,但也有类)
nn.ReLU,nn.LeakyReLU,nn.PReLU,nn.RReLUnn.Sigmoid,nn.Tanh,nn.ELU,nn.CELUnn.SELU,nn.GELU,nn.SiLU(=Swish)nn.Softmax,nn.LogSoftmaxnn.Softplus,nn.Softsign
🔹 9. 稀疏与其他层
nn.SparseLinear(PyTorch 2.5+ 才有)nn.PixelShuffle—— 超分辨率常用(上采样)nn.Upsample—— 上采样nn.Unfold / nn.Fold—— 图像 Patch 提取和恢复
🔹 10. 容器(搭建网络时用)
nn.Sequential—— 顺序容器nn.ModuleList—— 模块列表nn.ModuleDict—— 模块字典nn.ParameterList / ParameterDict—— 参数容器
👉 如果你是初学者,推荐学习路径大概是:
Linear → Conv → Pool → BatchNorm/LayerNorm → Dropout → RNN/LSTM/GRU → Transformer → MultiheadAttention
要不要我帮你整理一份 按“难度/应用领域”分层的学习路线图(比如入门 → 图像 → NLP → 高级网络)?