下面是详细实现的LayerNorm和RMSNorm代码,并附有详细注释。
LayerNorm 实现
LayerNorm的主要思想是对每个样本的每一层进行归一化。具体的实现如下:
import torch
import torch.nn as nn
class LayerNorm(nn.Module):
def __init__(self, d_model, eps=1e-6):
"""
初始化 LayerNorm 模块。
参数:
d_model: 输入张量的最后一个维度的大小。
eps: 防止除零错误的一个小常数。
"""
super(LayerNorm, self).__init__()
self.gamma = nn.Parameter(torch.ones(d_model)) # 缩放参数
self.beta = nn.Parameter(torch.zeros