Pytorch详解-模型模块(RNN,CNN,FNN,LSTM,GRU,TCN,Transformer)

Pytorch详解-模型模块

    • Module & parameter
      • Module初认识
        • forward函数
      • Parameter
        • Pytorch中的权重、参数和超参数
      • Module容器-Containers
        • Sequential
        • ModuleList
        • ModuleDict
        • ParameterList & ParameterDict
    • 常用网络层
      • LSTM
        • 输入和输出
      • GRU
      • Convolutional Layers
        • 卷积层的基本概念
        • 常见的卷积层类型
      • Pooling Layers
        • 池化层的基本概念
        • 常见的池化层类型
      • 自适应池化层
        • 自适应池化层的基本概念
        • 常见的自适应池化层类型
      • Padding Layers
        • 基本概念
        • 常见的填充层类型
      • Linear Layers
      • Normaliation Layers
        • 归一化层的基本概念
        • 常见的归一化层类型
        • Batch Normalization、Instance Normalization、Layer Normalization 和 Group Normalization 的优点和缺点
      • Dropout Layers
      • Alpha Dropout
        • Alpha Dropout 的工作原理
      • Non-linear Layers
        • 常见的非线性激活函数
    • Module常用API函数
      • 设置模型训练、评估模式
        • 训练模式
        • 评估模式
      • 设置模型存放在cpu/gpu
      • 获取模型参数、加载权重参数
      • 管理模型的modules, parameters, sub_module
      • 设置模型的参数精度,可选半精度、单精度、双精度等
      • 对子模块执行特定功能
    • Hook函数及Grad
        • torch.Tensor.register_hook:
        • torch.nn.Module.register_forward_hook:
        • torch.nn.Module.register_forward_pre_hook:
        • torch.nn.Module.register_full_backward_hook:
      • Grad-CAM
    • 权重初始化方法
      • 常见的权重初始化方法
        • 零初始化 (Zero Initialization)
        • 随机初始化 (Random Initialization)
        • Xavier/Glorot 初始化 (Xavier/Glorot Initialization)
        • He 初始化 (He Initialization)
        • 正交初始化 (Orthogonal Initialization)
        • 预训练初始化 (Pre-trained Initialization)
    • 示例
      • RNN模型
      • TCN模型
        • TCN的基本结构
        • TCN的优势
      • Transformer模型
        • nn.TransformerEncoderLayer
        • nn.TransformerEncoder 的结构

Module & parameter

定义模型类

  • 继承 nn.Module: 模型类通常继承自 nn.Module 类。
  • 初始化方法 init: 在这个方法中,定义模型的层(例如线性层、卷积层等)。
  • 前向传播方法 forward: 定义数据通过模型的流动方式

Module初认识

在pytorch中模型是一个Module,各网络层、模块也是Module。Module是所有神经网络的基类,所有的模型都必须继承于Module类,并且它可以嵌套,一个Module里可以包含另外一个Module。

在 PyTorch 中,nn.Module 类使用多个有序字典来管理其内部状态和功能。这些有序字典主要用于跟踪模型中的各种组件,如子模块、参数、缓冲区等。

  • _modules:

类型: OrderedDict
用途: 存储模型的子模块(即其他 nn.Module 实例)。每个子模块都有一个唯一的名称作为键。

  • _parameters:

类型: OrderedDict
用途: 存储模型的所有可学习参数。这些参数通

你可能感兴趣的:(rnn,pytorch,cnn)