nn.LayerNorm()

#哪个编程工具让你的工作效率翻倍?#

因为太多的博客并没有深入理解,本文是自己学习后加入自己深入理解的总结记录,方便自己以后查看。

nn.LayerNorm()的计算原理详解,如果有用的话,请记得点赞+关注哦。

学习前言

一起来学习nn.LayerNorm()的原理

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

normalized_shape:归一化的维度,int(最后一维)list(list里面的维度)
eps:加在方差上的数字,避免分母为0
elementwise_affine:bool,True的话会有一个默认的affine参数

layernorm对单个batch进行归一化,在每个样本的每个特征维度上进行归一化,使得每个特征的均值为0,方差为1,从而有助于提高模型的训练效果和泛化能力

与 Batch Normalization (批归一化)既有相似之处又有不同:从公式上看,都是减去均值除以标准差,也存在两个可训练的参数 gamma 和 beta

但是,BN 是对一个 batch 数据的每个 channel 进行 Norm 处理,LN是对单个数据的指定维度进行Norm处理,与batch无关。而且在BN训练时需要累计moving_mean和moving_var两个变量,LN不需要累计

所以说,,LayerNorm 是在每个样本的特征维度上进行归一化,而不是在批次维度上。这意味着在LayerNorm中,每个样本都有自己的均值和方差

优点:

  • 不依赖于批次大小,因此在训练和推理阶段都可以使用
  • 在处理小批次数据时,相比于BN批归一化,LayerNorm 更稳定
  • 由于每个样本都有自己的均值和方差,可以更好地适应不同样本之间的差异

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值