Tensorflow 在Keras中,如何在测试期间使用批处理规范化?

Tensorflow 在Keras中,如何在测试期间使用批处理规范化?,tensorflow,neural-network,batch-processing,keras,batch-normalization,Tensorflow,Neural Network,Batch Processing,Keras,Batch Normalization,我目前正在尝试在Keras中使用批处理规范化实现一个模型。我已经成功地在培训阶段实施了它 然而,对于测试,在进行网络前向传递之前,批次标准化计算整个群体的统计数据(平均值和方差)(BN平均值和方差是预先计算的,然后保持不变;这与训练阶段相反,训练阶段的平均值和方差由批次确定) 我关于Keras的问题是: 假设(X,y)是整个人口。 假设(X_批次,y_批次)是一个批次(整个总体的子集) 如果我使用 model.test_on_batch(X_batch, y_batch) 如何将X和y的整个总

我目前正在尝试在Keras中使用批处理规范化实现一个模型。我已经成功地在培训阶段实施了它

然而,对于测试,在进行网络前向传递之前,批次标准化计算整个群体的统计数据(平均值和方差)(BN平均值和方差是预先计算的,然后保持不变;这与训练阶段相反,训练阶段的平均值和方差由批次确定)

我关于Keras的问题是:

假设(X,y)是整个人口。 假设(X_批次,y_批次)是一个批次(整个总体的子集)

如果我使用

model.test_on_batch(X_batch, y_batch)
如何将X和y的整个总体的平均值和方差传递给批次标准化层?有没有办法让keras自动处理

如何将X和y的整个总体的平均值和方差传递给批次标准化层?有没有办法让keras自动处理

Keras应该这样做(在足够新的版本中):


要再次检查,您可能需要在测试/预测时尝试
batch_size=1
,如果Keras无法使用全局统计数据,您可能会看到非常糟糕的结果。

我回答了您的问题吗?@MaxB,是的,您回答了,非常感谢!它没有解决我的问题,但你回答了我的问题:)