面试高频坑:忘了调 model.eval(),BatchNorm 会让预测随 batch 变化

cneuralnetwork · x · 2026-11-06

一个能真正考倒人的 ML 面试题:为什么 BatchNorm 在训练和推理时表现不同?

核心机制:训练时 BatchNorm 使用当前 mini-batch 的统计量(均值/方差),推理时则使用训练期间累积的 running estimates。两者来源不同,行为自然不同。

由此引出一个经典 PyTorch 踩坑点:如果评估模型前忘了调用 model.eval(),BatchNorm(以及 Dropout)仍会保持训练模式,推理结果会依赖于输入 batch 的构成——同一份数据换个 batch 切分方式,预测结果就可能不一样。

原文链接 →

「研究」频道最新

更多「研究」频道 AI 资讯 →