pytorch学习总结之模型网格结构搭建

模型网格结构搭建

  • 模型网格结构搭建
    • nn.module类
    • nn.Sequential类
      • 其有三种实现方法
    • nn.Conv2d()
    • nn.BatchNorm2d()
    • nn.Dropout2d
    • 激活函数
      • LeakyReLu

模型网格结构搭建

nn.module类

  • 我们在定义自已的网络的时候,需要继承nn.Module类,并重新实现构造函数__init__构造函数和forward这两个方法

参考链接:
使用Module类来自定义模型

nn.Sequential类

  • 当一个模型较简单的时候,我们可以使torch.nn.Sequential类来实现简单的顺序连接模型。这个模型也是继承自Module类的
    参考学习链接:

其有三种实现方法

  1. 直接定义
  2. 添加名称
  3. add_module
    使用Sequential类来自定义顺序连接模型

nn.Conv2d()

二维卷积

  • 前三个参数是必须手动提供的,后面的有默认值 [外链图片转存中…(img-czTR1FdI-19629ca5417095763f4975e93155.png)
    参数详解链接:Pytorch的nn.Conv2d()详解

nn.BatchNorm2d()

在卷积神经网络的卷积层之后总会添加BatchNorm2d进行数据的归一化处理,这使得数据在进行Relu之前不会因为数据过大而导致网络性能的不稳定

  • 数学原理:

与LayerNorm的区别:

  • BathcNorm是在通道channel维,对一个batch中的每个样本的特定维进行归一化。
  • LayerNorm是在样本维,对单个样本的所有通道(特征)进行归一化
    具体请看:
    nn.BatchNorm2d用法详解
    BatchNorm和LayerNorm的区别

nn.Dropout2d

Dropout2d 的赋值对象是彩色的图像数据(batch N,通道 C,高度 H,宽 W)的一个通道里的每一个数据,即输入为 Input: (N, C, H, W) 时,对每一个通道维度 C 按概率赋值为 0。

参考链接:PyTorch 中的 dropout Dropout2d Dropout3d

激活函数

LeakyReLu

pytorch学习总结之模型网格结构搭建_第1张图片
pytorch学习总结之模型网格结构搭建_第2张图片
in-palce操作:in-place 操作是直接改变给定线性代数、向量、矩阵(张量)的内容而不需要复制的运算。

你可能感兴趣的:(深度学习,数据库,mysql,sql)