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

模型网格结构搭建

nn.module类

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

nn.Sequential类

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

其有三种实现方法

  1. 直接定义
  2. 添加名称
  3. add_module

nn.Conv2d()

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

nn.BatchNorm2d()

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

与LayerNorm的区别:

    BathcNorm是在通道channel维,对一个batch中的每个样本的特定维进行归一化。 LayerNorm是在样本维,对单个样本的所有通道(特征)进行归一化 具体请看:

nn.Dropout2d

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

激活函数

LeakyReLu

in-palce操作:in-place 操作是直接改变给定线性代数、向量、矩阵(张量)的内容而不需要复制的运算。

经验分享 程序员 微信小程序 职场和发展