小工具知识网

当前位置: 首页 > 行业知识 > LayerNorm的图是不是画错了

行业知识

LayerNorm的图是不是画错了

2026-11-12 16:47:09 来源:互联网转载

这index.php/tags-41973.html" >���网上一张很流行的说明几个 Normalization 区别的图

这图出自Kaiming的文章 Group Norm

但是他这个 Layer Norm 的图是不是画错了? 我大四写毕设的时候就想问 这都几年过去了

我觉得图应该是这样画的,相同颜色的区域做标准化

仨方块代表Batch_size = 3

每个方块内,前后向代表channel维度,左右代表宽,上下代表高

也就是同Batch, xy位置相同的特征像素,不同的channel里做标准化

接下来代码验证一下,只需要在 Channel 维度做一下标准化

import torchimport torch.nn as nn# torch.manual_seed(1107)torch.manual_seed(1942)# 假设x的形状是(B, W, H, C)x = torch.rand(32, 256, 256, 128)  # 添加一个维度以匹配四维输入m = nn.LayerNorm(128, elementwise_affine=False)m.eval()  # 设置为评估模式y = m(x)# 手动计算LayerNormx_mean = x.mean(dim=-1, keepdim=True)x_var = x.var(dim=-1, keepdim=True, unbiased=False)eps = m.epsy_manual = (x - x_mean) / ((x_var + eps).sqrt())print("结果是否一致:", torch.allclose(y, y_manual, atol=1e-6))

(大佬们路过,教我一下)

上一篇:北境之地怎么换服务器?

下一篇:揭秘数字背后的真相,关于7450的独家揭秘!