post LN, pre LN, sandwich LN图解
时间: 2025-07-06 10:54:46 AIGC 浏览: 23
### Post Layer Normalization (Post LN)
在传统的Transformer架构中,Layer Normalization被放置在自注意力机制和前馈神经网络之后的位置。这种设计被称为Post Layer Normalization。
- **特点**: 此种方式下,残差连接先于Layer Normalization操作执行[^2]。
```python
def post_layer_norm(x):
residual_connection = sublayer(x) # 自注意力或FFN子层计算
normalized_output = layer_norm(residual_connection + x)
return normalized_output
```
### Pre Layer Normalization (Pre LN)
为了改善深层网络中的梯度消失/爆炸问题以及加速收敛速度,在某些改进版本的Transformer模型里,Layer Normalization被移到了每个子层之前应用,即所谓的Pre Layer Normalization。
- **特点**: 这样做可以确保输入到各子层的数据分布更加稳定一致。
```python
def pre_layer_norm(x):
norm_input = layer_norm(x)
output = sublayer(norm_input) + x # 应用于自注意力或FFN后的残差连接
return output
```
### Sandwich Layer Normalization
Sandwich Layer Normalization是一种结合了上述两种方法的设计理念,它不仅在网络结构内部增加了额外的一次规范化处理,还在最终输出端再次进行了Layer Normalization的操作,形成了一种类似于三明治夹心式的布局。
- **特点**: 通过这种方式可以在一定程度上进一步提高模型的表现力并增强其鲁棒性。
```python
def sandwich_layer_norm(x):
first_norm = layer_norm(x)
intermediate_result = sublayer(first_norm) + x
final_output = layer_norm(intermediate_result)
return final_output
```
阅读全文
相关推荐















