Keras中Normalization层的使用场景及训练相关问题咨询
Keras归一化层相关问题解答
针对你把适配好的归一化层加入模型作为第一层的场景,两个问题的答案如下:
1. 归一化是否同时作用于训练和测试阶段?
会同时作用于训练(model.fit)和测试(model.evaluate)阶段,但有个关键细节:
- 不管是训练还是测试,归一化时用的都是**
adapt(x_train)阶段计算出的训练集均值和标准差**,不会在测试阶段重新计算新的统计量。 - 这么做是为了避免数据泄露,保证测试数据的处理逻辑和训练时完全一致,和真实部署时的推理逻辑对齐。
2. 训练过程中归一化是每个批次/epoch都执行,还是仅执行一次?
每个批次的输入数据都会执行归一化操作,但归一化用的核心统计参数(均值、标准差)是仅在adapt阶段计算一次的固定值,训练过程中不会更新:
- 每次
model.fit处理一批训练数据时,都会用预先算好的训练集统计量对当前批次数据做归一化; - 整个训练周期里,归一化层的参数不会变化,除非你重新调用
adapt方法。
内容的提问来源于stack exchange,提问作者Kaikus
相关产品推荐
相关产品推荐

