【学习笔记】Pytorch深度学习—Normalization_layers

本节课的内容主要是深度学习中常见的Normalization方法,分别是BN、LN、IN、GN;主要分为3部分内容:(1)为什么要进行Normalization?(2)常见的Normalization方法——BN、LN、IN、GN;(3)Normalization方法小结。

一、为什么要进行Normalization?

Internal Covariate Shfit

ICS可以理解为,在深度学习中出现数据尺度分布异常,导致训练困难的现象。

在全连接网络中,第一个网络层 H 1 H_{1} H1层中的神经元 H 11 H_{11} H11, D ( H 1 ) = n × D ( X ) × D ( W ) D(H_1)=n\times D(X)\times D(W) D(H1)=n×D(X)×D(W),方差即网络层的数据尺度是连乘关系;如果尺度上稍有减小趋势,随着网络的加深,减小趋势会越来越明显,从而导致梯度消失;抑或是尺度上有增大趋势,随着网络的加深,从而导致梯度爆炸,造成模型难以训练。

而进行了Normalization后,可以控制、约束数据尺度、数据分布,有助于模型训练。
在这里插入图片描述

二、常见的Normalization方法——BN、LN、IN、GN

1、Batch Normalization——BN
2、Layer Normalization——LN
3、Instance Normalization——IN
4、Group Normalization——GN

四种方法的异同点:
在这里插入图片描述

1、适用变长网络的:Layer Normalization

在这里插入图片描述
分析:gamma、beta逐元素、逐特征的,第1个神经元有自己的gamma系数和beta,第2个神经元也有自己的gamma和beta。

使用方法

nn.LayerNorm(
normalized_shape,
eps=1e-05,
elementwise_affine=True)

主要参数

normalized_shape:该层特征形状,根据该形状求取均值和方差;
eps:分母修正项
elementwise_affine:是否需要affine transform 
2、适用样本风格不统一的:Instance Normalization

在这里插入图片描述
分析:instance为实例,可以理解为图像

使用方法

nn.InstanceNorm2d(
num_features,
eps=1e-05,
momentum=0.1,
affine=False,
track_running_stats=False)

分析:InstanceNorm亦有1d、2d、3d,主要看特征是几维的。
主要参数

num_features:一个样本特征数量(最重要)
eps:分母修正项
momentum:指数加权平均估计当前mean/var
affine:是否需要affine transform
track_running_stats:是训练状态还是测试状态
3、适用大模型、小 batch size的:Group Normalization

在这里插入图片描述
使用方法

nn.GroupNorm(
num_groups,
num_channels,
eps=1e-05
affine=False)

主要参数

num_groups:分组数(通常设置为24816...根据特征图数量计算,
并且分组数设置的数值是必须能被整除的。比如1个样本的特征图为4,分组
若设置为34/3不能整除,则会报错。)
num_channels:通道数(特征数)假如有256个通道,想分为4组,每一组为
64个feature map,64个feature map一起估计均值和方差
momentum:指数加权平均估计当前mean/var
eps:分母修正项
affine:是否需要affine transform

三、Normalization小结

在这里插入图片描述

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

又青。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值