好的 👍 `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.TransformerDecoder` * `nn.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` —— 全连接层 Dropout * `nn.Dropout2d/3d` —— 用于卷积层的 Dropout * `nn.AlphaDropout` —— 用于 SELU 激活的变体 --- ### 🔹 8. 激活函数(很多都在 `torch.nn.functional`,但也有类) * `nn.ReLU`, `nn.LeakyReLU`, `nn.PReLU`, `nn.RReLU` * `nn.Sigmoid`, `nn.Tanh`, `nn.ELU`, `nn.CELU` * `nn.SELU`, `nn.GELU`, `nn.SiLU`(=Swish) * `nn.Softmax`, `nn.LogSoftmax` * `nn.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 → 高级网络)?