面试高频坑:忘了调 model.eval(),BatchNorm 会让预测随 batch 变化
cneuralnetwork · x · 2026-11-06
一个能真正考倒人的 ML 面试题:为什么 BatchNorm 在训练和推理时表现不同?
核心机制:训练时 BatchNorm 使用当前 mini-batch 的统计量(均值/方差),推理时则使用训练期间累积的 running estimates。两者来源不同,行为自然不同。
由此引出一个经典 PyTorch 踩坑点:如果评估模型前忘了调用 model.eval(),BatchNorm(以及 Dropout)仍会保持训练模式,推理结果会依赖于输入 batch 的构成——同一份数据换个 batch 切分方式,预测结果就可能不一样。
「研究」频道最新
- 「凸包」之争:LLM 会吃掉数学文献内可拼出的定理吗 — notmisha · 2026-11-06
- DeepMind 修复 Softmax 与交叉熵:浮点舍入悄悄吃掉梯度 — jiqizhixin · 2026-11-06
- 圣塔菲研究所长文回顾:基于主体建模如何重塑社会科学 — sebkrier · 2026-11-06
- NextGAN 论文:一步生成 ImageNet FID 1.36,可扩展到 14B 视频模型 — serrjoa · 2026-11-06
- RoboColosseum 上线:2 万次真机测试检验机器人策略,失败数据全公开 — DJiafei · 2026-11-06
- 港科大广州等发布 SLA:持续预训练扩展空间-语言-动作模型 — HKUSTGZ · 2026-11-06