torch.nn.LayerNorm
LayerNorm,全称为层归一化(Layer Normalization),是一种在深度学习中常用的归一化技术。它在PyTorch中的实现为torch.nn.LayerNorm。
LayerNorm是什么?
LayerNorm是一种特殊的归一化方法,它在一个小批量的输入上应用层归一化。与批归一化(Batch Normalization)和实例归一化(Instance Normalization)不同,LayerNorm在每个元素上应用缩放和偏移,而不是对每个通道/平面应用标量缩放和偏移。
LayerNorm的公式为:
其中,
LayerNorm的参数
torch.nn.LayerNorm接受以下参数:
-
normalized_shape:输入的形状,可以是一个整数或一个列表或torch.Size。如果是一个整数,它将被视为一个单元素列表,这个模块将对最后一个维度进行归一化,这个维度预计具有特定的大小。
-
eps:为了数值稳定性添加到分母中的值。默认为1e-5。
-
elementwise_affine:一个布尔值,当设置为True时,此模块具有可学习的每元素仿射参数,权重初始化为1,偏置初始化为0。
LayerNorm的使用
在PyTorch中,可以很容易地创建和使用LayerNorm。以下是一个例子:
# NLP Example
batch, sentence_length, embedding_dim = 20, 5, 10
embedding = torch.randn(batch, sentence_length, embedding_dim)
layer_norm = nn.LayerNorm(embedding_dim)
# Activate module
layer_norm(embedding)
在这个例子中,我们首先创建了一个随机的嵌入向量,然后创建了一个LayerNorm层,最后将嵌入向量传递给LayerNorm层进行归一化。
本文作者:Maeiee
本文链接:torch.nn.LayerNorm
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!