LayerNorm的图是不是画错了

这是网上一张很流行的说明几个 Normalization 区别的图

这图出自Kaiming的文章 Group Norm

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

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

仨方块代表Batch_size = 3

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

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

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

python 复制代码
import torch
import 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)

# 手动计算LayerNorm
x_mean = x.mean(dim=-1, keepdim=True)
x_var = x.var(dim=-1, keepdim=True, unbiased=False)
eps = m.eps

y_manual = (x - x_mean) / ((x_var + eps).sqrt())

print("结果是否一致:", torch.allclose(y, y_manual, atol=1e-6))

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

相关推荐
m0_617493949 小时前
PyTorch CUDA设备不可用错误解决方案
人工智能·pytorch·python
Soari9 小时前
告别玩具级 Demo!深度拆解 agents-towards-production,用硬核工程把 AI Agent 推向工业级生产线
人工智能·软件工程·llmops·架构优化·genai·aiagent·生产级部署
minhuan9 小时前
RTX 4090显存终极优化:模型分层加载、CPU Offload显存和内存动态置换实践.179
人工智能·大模型应用·rtx 4090显存优化·模型分层加载·cpu offload优化
小郑加油9 小时前
python学习Day15:综合训练——数据清洗与缺失值补充
开发语言·python·学习
完成大叔9 小时前
Agent入门:用本地模型从零搭建
开发语言·python·langchain
2601_958548489 小时前
电镀整流机源头厂家:企业采购选型策略深度解析
人工智能
光锥智能9 小时前
智元WITA成为全国首例完成大模型备案的具身智能交互模型
人工智能
墨神谕9 小时前
人工智能(一)—AI的起源和发展
人工智能
科技云报道10 小时前
当攻击开始“自主决策”,安全体系如何应战?
人工智能
一切皆是因缘际会10 小时前
AI低代码开发实战:轻量化部署与多场景落地
人工智能·深度学习·低代码·机器学习·ai·架构